python 類的特殊成員方法

2022-08-10 07:15:11 字數 1840 閱讀 5494

__doc__ # 輸出類的描述資訊

__module__ # 表示當前操作的物件在那個模組

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

__init__ # 構造方法,通過類建立物件是,自動觸發執行。

__del__ # 構造方法,當物件在記憶體中釋放是,自動觸發執行。

__call__ # 物件後面加括號,觸發執行

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

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

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

__getitem__ # 用於索引操作,如字典。表示獲取資料

__setitem__ # 用於索引操作,如字典。表示設定資料

__delitem__ # 用於索引操作,如字典。表示刪除資料

**__new__**

建立類的兩種方法:

1.普通方法

class foo(object):

def func(self):

print('hello world!')

2.特殊方法

def func(self):

print('hello world!')

foo = type('foo',(object),)

# type第乙個引數:類名

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

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

**__new__**

new負責函式例項化時的記憶體空間開闢。早於__ini__的執行。

**metaclass**

class foo(object,metaclass=mytype)

**__new__,__init__,__call__的使用說明**

class

mytype(type):

def__call__(self, *args, **kwargs):

print('

mytype __call__')

obj = self.__new__

(self)

self.

__init__(obj, *args, **kwargs)

return

obj

def__new__(cls, *args, **kwargs):

print('

mytype __new__')

obj = type.__new__(cls, *args, **kwargs)

return

obj

def__init__(self,*args,**kwargs):

print('

mytype __init__')

class foo(object,metaclass=mytype):

def__init__

(self,name):

print('

foo __init__')

self.name =name

f = foo('

helei')

print(f.name)

說明:首先你需要知道一下幾點:

- python中一切接物件。(平時所說的物件和例項都是物件)

- __init__的作用是初始化函式屬性作用是

- __new__的作用是生成物件的記憶體空間並返回

- __call__的作用是物件(或者可以說是例項)後面加括號,觸發執行

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講解類的特殊成員方法

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