Python 類的特殊成員方法

2021-08-18 23:40:17 字數 2015 閱讀 2928

#1.__doc__

class person(object):

'''這個類是描述人這個物件的

'''print(person.__doc__) #

列印類的描述資訊

#2. __call__ 

物件後面加

(),觸發執行

class person(object):

'''這個類是描述人這個物件的

'''def

__init__(self

,name):

self.name=name

def

__call__(self

,*args,**kwargs):

print("work call"

,args,kwargs)

a=person("xiaofang")

a(1,2,

3,***='f')

#3.__dict__   

檢視類或物件中的所有成員

class person(object):

'''這個類是描述人這個物件的

'''b="xiaohua"

def

__init__(self

,name):

self.name=name

def

__call__(self

,*args,**kwargs):

print("work call"

,args,kwargs)

print(person.__dict__) #

列印類中所有成員以字典方式

c=person("xiaoqian")

print(c.__dict__) #

只列印例項屬性,不列印類屬性

#4.__str__  

如果乙個類中定義了

__str__

方法,則在列印物件時預設輸出該方法的返回值

class person(object):

'''這個類是描述人這個物件的

'''b="xiaohua"

def

__init__(self

,name):

self.name=name

def

__str__(self):

return

"%s"%self.name

c=person("xiaoqian")

print(c) #

結果為xiaoqian

#5.__getitem__,__setitem__,__delitem__

class foo(object):

def

__init__(self):

self.data={}

def

__getitem__(self

,key):

print('__getitem__'

,key)

return

self.data.get(key)

def

__setitem__(self

,key,value):

print('__setitem__'

,key,value)

self.data[key]=value

def

__delitem__(self

,key):

print('__delitem__'

,key)

obj=foo()

result=obj['k'] #

自動觸發執行

__getitem__

obj['k1']='xiaopeng'

#自動觸發執行

__setitem__

del obj['k1'] #

觸發__delitem__

並非真實刪除

print(obj['k1'])

Python 類的特殊成員方法

1.doc 描述類的資訊 class foo object 單引號和雙引號都可以 這裡描述類的資訊 def func self pass print foo.doc 這裡描述類的資訊2.call 物件後面加括號,觸發執行 call 方法的執行是由物件加括號觸發的,即 物件 或者 類 class fo...

python 類的特殊成員方法

doc 輸出類的描述資訊 module 表示當前操作的物件在那個模組 class 表示當前操作的物件的類是什麼 init 構造方法,通過類建立物件是,自動觸發執行。del 構造方法,當物件在記憶體中釋放是,自動觸發執行。call 物件後面加括號,觸發執行 注 構造方法的執行是由建立物件觸發的,即 物...

python講解類的特殊成員方法

class dog object 這個類是描述狗這個物件的 def init self,name self.name name staticmethod 實際上跟類沒有什麼關係了。eat和類的關係截斷了,只是類下面函式 靜態方法 只是名義上歸類管理,實際上在靜態方法裡訪問不了類或例項中的任何屬性 d...