-
__str__()函数似乎没有在自定义类Person中生效,这是为什么呢?
这是因为 Python 定义了__str()__和__repr__()两种方法,__str()__用于显示给用户,而__repr__()用于显示给开发人员,当使用str()时,实际调用的是__str__()方法,而直接输入变量,调用的是__repr__()方法。
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __str__(self):
return 'name: {}, gender: {}'.format(self.name, self.gender)
def __repr__(self):
return 'name: {}, gender: {}'.format(self.name, self.gender)
bob = Person('Bob', 'Male')
str(bob) # ==> 'name: Bob, gender: Male'
>>> bob
'name: Bob, gender: Male'查看全部 -
class Student()定义的时候,需要在括号内写明继承的类Person
在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性查看全部 -
class Student(Person):
def __init__(self, name, gender, score):
super(Student, self).__init__(name, gender)
self.score = score
student = Student('Alice', 'girl', 100)
print(student.name) # ==> Alice
print(student.gender) # ==> girl
print(student.score) # ==> 100查看全部 -
dir方法获取类的所有属性查看全部
-
import socket
socket.socket()
服务端
.bind()绑定ip、端口
.listen()监听
.recv()接收
.send()发送
客户端
.connect()连接服务端的ip和端口
.send()发送
.recv()接收
发送和接收信息,是两端都可以有的功能,两端都需要建立socket后,才能进行后续操作
变量名1 = socket.socket()
#这是新建socket
变量名1.bind(‘ip地址',端口)
#这是绑定ip和端口,ip地址是字符串,端口是数字
变量名1.listen()
#这是监听连接
变量名2,addr = 变量名1.accept()
#这里是调用了socket的accept()函数,接受连接,并且把接受的连接命名为变量名2,括号内不能有参数
变量名3 = 变量名2.recv(1024)
#把在连接里收到的内容存在变量名3中
变量名1.send()
#这是发送数据的函数查看全部 -
第一个路径是'',它是一个空字符串,表达的是当前路径的意思。
第二个路径是/data/miniconda3/lib/python3.8,它是Python默认模块的存放的路径,在这个路径下,可以发现有os、sys等模块的代码。
第三个路径是/data/miniconda3/lib/python3.8/site-packages,它是第三方模块代码的存放路径,在这个路径下,存放的是需要安装的第三方模块。查看全部 -
因为在搜索模块的时候,会默认包含官方模块的路径,所以导入官方模块不需要考虑路径的问题。查看全部
-
如果希望导入模块的指定部分属性或函数,那么使用from...import...语句。查看全部
-
如果希望导入模块里面的所有内容,那么使用from ...import *语句。查看全部
-
导入以后,你就可以认为math是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类:查看全部
-
class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score student = Student('Alice', 'girl', 100) print(student.name) # ==> Alice print(student.gender) # ==> girl print(student.score) # ==> 100查看全部
-
在定义继承类的时候,有几点是需要注意的:
class Student()定义的时候,需要在括号内写明继承的类Person
在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性查看全部 -
需要注意__add__()函数,它有一个参数,表示的是运算的第二个操作数,比如:r1 + r2,那么在__add__()方法中的参数,r指的就是r2,这个参数是运算符重载的时候传递的。查看全部
-
__str()__用于显示给用户,而__repr__()用于显示给开发人员,当使用str()时,实际调用的是__str__()方法,而直接输入变量,调用的是__repr__()方法。查看全部
-
直接在终端输入变量bob,得到的依然是这样结果。查看全部
举报
0/150
提交
取消