最新回答 / 慕絲8731815
不會。當你執行r1 = Rational(1, 2)時,只是創建了一個Rational類的實例,并將其賦值給變量r1。這行代碼并不會直接調用__add__方法。__add__方法只有在你使用+運算符來對r1和另一個Rational對象進行相加時才會被調用。例如,當你執行r1 + r2時,__add__方法會被自動調用來執行加法操作。
2021-05-07
最新回答 / Sapce
個人理解:只要重寫了 __str__()方法,不管是打印對象還是打印對象的字符串格式,其調用的都是 __str__()方法,所以顯示的都是格式化的結果。也就是說,print(str(obj)) 和 print(obj) 是一樣的而只有在控制臺(window下的cmd,命令提示符)中,在python環境下直接輸入(不是打?。﹐bj,回車,調用的才是 __repr__()方法。如果沒有重寫該方法,還是會顯示對象所在的地址
2021-05-05
最贊回答 / 樹懶先生QAQ
@是裝飾符以原文為例,先定義了一個log()函數。把想要裝飾函數factorial()上一行寫上 @log,就完成了用log()函數里的內容去“”裝飾“”factorial()函數里的內容。通過@裝飾符,可以修飾某函數,使其完成自己想要的額外的功能
2021-04-22
最贊回答 / 小白兔cai
定義函數?def __init__(self, ? , ?):函數是寫成了? ?def __int__(self, ? , ? ):改寫為? ?def __init__(self, ? , ? ):
2021-04-11
最新回答 / 方木學長
class?person(object): ????def?__init__(self,?name,?age,?gender): ????????self.name?=?name ????????self.age?=?age ????????self.gender?=?gender class?skillmixin(object): ????def?__init__(self,?skillname): ?...
2021-04-02