Python 魔術方法

2021-09-12 22:58:34 字數 3078 閱讀 3129

與運算子無關

類別方法名

數值轉換

abs、bool、complex、int、float、hash、index

模擬集合

len、getitem、setitem、delitem、contains

迭代列舉

iter、reversed、next

可呼叫模型

call

上下文管理

enter、exit

例項建立和銷毀

new、init、del

屬性管理

getattr、getattribute、setattr、delattr、dir

屬性描述符

get、set、delete、@property、@name.setter

與運算子相關

類別方法名

一元運算子

neg ( - )、pos ( + )、abs (絕對值)

比較運算

add、sub、mul、truediv ( / )、floordiv ( // )、mod ( % )、pow ( ** )、round

位運算子

invert ( ~ )、lshift ( << )、rshift ( >> )、and ( & )、or、xor ( ^ )

部分方法實現

class

people

:# 初始化方法

def__init__

(self, name)

: self.__name = name

self.parts =

["head"

,"leg"

,"body"

]# f'content' 格式化字串

def__format__

(self, format_spec)

:return self.__name

# 字串方法

def__repr__

(self)

:# 如果沒有此方法則會列印

return f"people(name=)"

def__str__

(self)

:# 字串表示

return self.__name

# 上下文管理器的開始與退出方法

def__enter__

(self)

:print

(f" is waking up !"

)def

__exit__

(self, exc_type, exc_val, exc_tb)

:print

(f" is going to sleep..."

)# 獲取長度

def__len__

(self)

:return

len(self.parts)

# 列表方法

def__setitem__

(self, index, value)

: self.parts[index]

= value

def__getitem__

(self, item)

:return self.parts[item]

# 使用 . 對屬性進行賦值以及取值

@property

defage

(self)

:return self.__age

@age.setter

defage(self, value)

: self.__age = value

# 例項方法

deflearn

(self)

:print

(f" is learning"

)

執行結果:

>>

> people = people(

"jack"

)>>

>

print

(f"my name is "

)>>

> my name is jack

>>

>

print

(repr

(people)

)>>

> people(name=jack)

>>

>

with people(

"jack"

)as p:

>>

>

print

("i am working!"

)>>

> jack is waking up !

>>

> i am working!

>>

> jack is going to sleep...

>>

>

for p in people:

>>

>

print

(p, end=

", "

)>>

> head, leg, body,

>>

>

print

("\n handstand!"

)>>

> handstand!

>>

>

for p in

reversed

(people)

:print

(p, end=

", "

)>>

> body, leg, head,

>>

> people.age =

"12"

>>

>

print

(people.age)

>>

>

12

python 魔術方法

魔術方法 呼叫方式 解釋 new cls instance myclass arg1,arg2 new 在建立例項的時候被呼叫 init self instance myclass arg1,arg2 init 在建立例項的時候被呼叫 cmp self,other self other,self o...

Python魔術方法

參考文章 python 魔術方法指南 魔術方法,顧名思義是一種可以給物件 類 增加魔法的特殊方法,它們的表示方法一般是用雙下劃線包圍 如 init from os.path import join class fileobject 給檔案物件進行包裝從而確認在刪除時檔案流關閉 def init se...

Python 魔術方法

usr bin env python coding utf 8 author ray time 2018 12 6 魔術方法例項 init 建構函式,在生成物件時呼叫,用來初始化值 del 析構函式,釋放物件時使用 比如編輯檔案,把關閉檔案的操作寫在此方法中,程式結束時就會關閉軟體 str 使用pr...