-
__str__()函數(shù)似乎沒有在自定義類Person中生效,這是為什么呢?
這是因?yàn)?Python 定義了__str()__和__repr__()兩種方法,__str()__用于顯示給用戶,而__repr__()用于顯示給開發(fā)人員,當(dāng)使用str()時(shí),實(shí)際調(diào)用的是__str__()方法,而直接輸入變量,調(diào)用的是__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()定義的時(shí)候,需要在括號(hào)內(nèi)寫明繼承的類Person
在__init__()方法,需要調(diào)用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()
服務(wù)端
.bind()綁定ip、端口
.listen()監(jiān)聽
.recv()接收
.send()發(fā)送
客戶端
.connect()連接服務(wù)端的ip和端口
.send()發(fā)送
.recv()接收
發(fā)送和接收信息,是兩端都可以有的功能,兩端都需要建立socket后,才能進(jìn)行后續(xù)操作
變量名1 = socket.socket()
#這是新建socket
變量名1.bind(‘ip地址',端口)
#這是綁定ip和端口,ip地址是字符串,端口是數(shù)字
變量名1.listen()
#這是監(jiān)聽連接
變量名2,addr = 變量名1.accept()
#這里是調(diào)用了socket的accept()函數(shù),接受連接,并且把接受的連接命名為變量名2,括號(hào)內(nèi)不能有參數(shù)
變量名3 = 變量名2.recv(1024)
#把在連接里收到的內(nèi)容存在變量名3中
變量名1.send()
#這是發(fā)送數(shù)據(jù)的函數(shù)查看全部 -
第一個(gè)路徑是'',它是一個(gè)空字符串,表達(dá)的是當(dāng)前路徑的意思。
第二個(gè)路徑是/data/miniconda3/lib/python3.8,它是Python默認(rèn)模塊的存放的路徑,在這個(gè)路徑下,可以發(fā)現(xiàn)有os、sys等模塊的代碼。
第三個(gè)路徑是/data/miniconda3/lib/python3.8/site-packages,它是第三方模塊代碼的存放路徑,在這個(gè)路徑下,存放的是需要安裝的第三方模塊。查看全部 -
因?yàn)樵谒阉髂K的時(shí)候,會(huì)默認(rèn)包含官方模塊的路徑,所以導(dǎo)入官方模塊不需要考慮路徑的問題。查看全部
-
如果希望導(dǎo)入模塊的指定部分屬性或函數(shù),那么使用from...import...語句。查看全部
-
如果希望導(dǎo)入模塊里面的所有內(nèi)容,那么使用from ...import *語句。查看全部
-
導(dǎo)入以后,你就可以認(rèn)為math是一個(gè)指向已導(dǎo)入模塊的變量,通過該變量,我們可以訪問math模塊中所定義的所有公開的函數(shù)、變量和類:查看全部
-
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查看全部
-
在定義繼承類的時(shí)候,有幾點(diǎn)是需要注意的:
class Student()定義的時(shí)候,需要在括號(hào)內(nèi)寫明繼承的類Person
在__init__()方法,需要調(diào)用super(Student, self).__init__(name, gender),來初始化從父類繼承過來的屬性查看全部 -
需要注意__add__()函數(shù),它有一個(gè)參數(shù),表示的是運(yùn)算的第二個(gè)操作數(shù),比如:r1 + r2,那么在__add__()方法中的參數(shù),r指的就是r2,這個(gè)參數(shù)是運(yùn)算符重載的時(shí)候傳遞的。查看全部
-
__str()__用于顯示給用戶,而__repr__()用于顯示給開發(fā)人員,當(dāng)使用str()時(shí),實(shí)際調(diào)用的是__str__()方法,而直接輸入變量,調(diào)用的是__repr__()方法。查看全部
-
直接在終端輸入變量bob,得到的依然是這樣結(jié)果。查看全部
舉報(bào)