# object中因為有__repr__方法,所以直接列印例項化物件會有下面這句列印出來
<__main__.clanguage object at 0x000001a7275221d0
>
# 在類中重寫__repr__函式,
class
clanguage
:def
__init__
(self)
: self.name =
"c語言中文網"
self.add =
""def__repr__
(self)
:return
"clanguage[name="
+ self.name +
",add="
+ self.add +
"]"clangs = clanguage(
)print
(clangs)
# 輸出
clanguage[name=c語言中文網,add=http:
可以看出__repr__的作用就是列印例項資訊
通過在 類中實現call() 方法,使得例項物件變為可呼叫物件。即例項物件後面可以加()。
對於可呼叫物件,實際上「名稱()」可以理解為是「名稱.call()」的簡寫。
class
clanguage
:def
__init__
(self)
: self.name =
"c語言中文網"
self.add =
""defsay
(self)
:print
("我正在學python"
)clangs = clanguage()if
hasattr
(clangs,
"name"):
print
(hasattr
(clangs.name,
"__call__"))
print
("**********")if
hasattr
(clangs,
"say"):
print
(hasattr
(clangs.say,
"__call__"))
# 輸出結果
false
****
****
**true
# 總結
可以看到,由於 name 是類屬性,它沒有以 __call__ 為名的 __call__(
) 方法;而 say 是類方法,它是可呼叫物件,因此它有 __call__(
) 方法。
python特殊函式 cmp
cmp 對 int str 等內建資料型別排序時,python的 sorted 按照預設的比較函式 cmp 排序,但是,如果對一組 student 類的例項排序時,就必須提供我們自己的特殊方法 cmp class student object def init self,name,score sel...
python 內建函式和特殊函式
2 特殊函式 輸入輸出 記憶體相關 檔案操作相關 模組相關 幫助 呼叫相關 檢視內建屬性 字串型別 的執行 exec 動態執行 沒有返回值 complie 將乙個字串編譯成位元組 例子 in 8 eval 3 5 2 8 10 21 out 8 35.0 in 9 exec print 這是exec...
python 特殊字元處理函式
def spcharreplace char char char temp str char for i in temp if i char char.replace if i char char.replace if i char char.replace 處理單引號 if i char char...