Python特殊函式

2021-10-12 21:57:06 字數 1434 閱讀 6855

# 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...