Python之類的特殊成員方法

2021-09-23 10:08:23 字數 3555 閱讀 5386

類的特殊成員方法

1.__doc__:列印類的描述資訊

class foo:

""" 描述類資訊,這是用於看片的神奇 """

def func(self):

pass

print foo.__doc__

#輸出:類的描述資訊

2.__module__:表示當前操作的物件在那個模組

class c:

def __init__(self):

self.name = 'wupeiqi'

3.__class__表示當前操作的物件的類是什麼

from lib.aa import c

obj = c()

print obj.__module__ # 輸出 lib.aa,即:輸出模組

print obj.__class__ # 輸出 lib.aa.c,即:輸出類

4. __init__ :構造方法,通過類建立物件時,自動觸發執行

class role(object):    

#初始化函式,在生成乙個角色時要 初始化的一些屬性就填寫在這裡

def __init__(self,name,role,weapon,life_value=100,money=15000):

#__init__中的第乙個引數self,和這裡的self都 是什麼意思? 看下面解釋

self.name = name

self.role = role

5.__del__:析構方法,當物件在記憶體中被釋放時,自動觸發執行

class role(object):

def __init__(self,name,role,weapon:

self.name = name

self.role = role

self.weapon = weapon

def __del__(self): #析構函式

print("del.....run...")

r1 = role('alex','police','ak47') #生成乙個角色

6.__call__:物件後面加括號,觸發執行

#注:構造方法的執行是由建立物件觸發的,即:物件 = 類名() ;而對於 __call__ 方法的執行是由物件後加括號觸發的,即:物件() 或者 類()()

class foo:

def __init__(self):

pass

def __call__(self, *args, **kwargs):

print '__call__'

obj = foo() # 執行 __init__

obj() # 執行 __call__

7.__dict__:檢視類或物件中的所有成員

print(類.__dict__) # 列印類裡所有屬性,不包括例項屬性

print(例項.__dict__) #列印例項所有屬性,不包括類屬性

8.__str__:如果乙個類中定義了__str__方法,那麼在列印 物件 時,預設輸出該方法的返回值

class foo:

def __str__(self):

return 'alex li'

obj = foo()

print obj

# 輸出:alex li

9.__getitem____setitem____delitem__:注:用於索引操作,如字典。以上分別表示獲取、設定、刪除資料

class foo(object):

def __getitem__(self, key):

print('__getitem__',key)

def __setitem__(self, key, value):

print('__setitem__',key,value)

def __delitem__(self, key):

print('__delitem__',key)

obj = foo()

result = obj['k1'] # 自動觸發執行 __getitem__

obj['k2'] = 'alex' # 自動觸發執行 __setitem__

del obj['k1']

10.__new__\__metaclass__ *(自定義類)__new__:是用來建立例項的,對類例項化之前進行定製,可以用到。__metaclass__:定義乙個類如何被建立類的生成 呼叫 順序依次是 __new__ --> __init__ --> __call__

#

建立類特殊方式

deffunc(self):

print

(self.name,self.age)

def__init__

(self,name,age):

self.name =name

self.age =age

#通過type例項化產生的foo類,foo是type的物件。

#(object,)加入「,」是為了讓括號知道他是個元組。

#type第乙個引數:類名

#type第二個引數:當前類的基類

#type第三個引數:類的成員

foo = type('

foo',(object,),)

f= foo("

chrn

",22)

f.talk()

print

(type(foo))

#type 為 類的類,所有類都是type建立的

卿先生 閱讀(

...)

編輯收藏

Python 類的特殊成員方法

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

Python 類的特殊成員方法

1.doc class person object 這個類是描述人這個物件的 print person.doc 列印類的描述資訊 2.call 物件後面加 觸發執行 class person object 這個類是描述人這個物件的 def init self name self.name name ...

python 類的特殊成員方法

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