已采納回答 / Zobeltitz
首先調用add函數實在創建Rational類之后的,所以在調用這個函數的時候Rational已經創建完了,不會出現問題Rational()是創建一個Rational類型的對象,調用的是__init__構造方法,這個函數返回一個Rational類型的對象,這個對象是運算結果
2020-10-22
已采納回答 / Zobeltitz
在自己自定義的類中的這兩個方法繼承自Object類,可能不符合自己的需求(比如說輸出太難讀了)。所以需要在自己的類中重寫這兩個方法,覆蓋繼承的這兩個方法,執行新的功能。(在Python的內建數據類型(字符串,整型等)中應該已經重寫過這個方法了)str和repr用戶和開發者都可以使用,結果均打印在命令行中。區別在于這兩個的函數的作用的定義,str注重用戶的可讀性(在某些應用里可能會輸出圖表之類的?),repr注重開發和調試期間的使用(課程中說:”在終端(Terminal)中直接輸入變量的時候“,用戶不太用直...
2020-10-20
最贊回答 / 不做實力派的型男不改昵稱
你這完全搞錯了,__str__是object對象的內置函數,而str()是python全局的一個內置函數,這兩個不是一個函數在使用? ? ?str(a)? ? ?時等價于? ? a.__str__()? ? ? ,即str方法會去調用對象的內置函數__str__.這里你可能會問,那為啥不寫a.__str__(),而是寫成str(a)。因為習慣規定雙下劃線的為私有級別,不建議直接調用,而且個人覺得寫起來代碼也不好看
2020-10-20
最贊回答 / 我愛喝闊落
右邊計算完后 會賦值左邊對應字符a, b = b, a+b??這種賦值,先計算等值?右邊 就是 b=1?a+b=1??再賦值給a和b,那么 a=1, b=1?循環
2020-10-06
最贊回答 / qq_慕妹2150756
但是如果沒有__,那么def語句里面的
Animal.__count?=?Animal.__count?+?1不就在每次新建實例的時候修改了count嗎
2020-10-04