1. 程式人生 > >【面向對象】類的特殊成員方法

【面向對象】類的特殊成員方法

mil class call _weak style 所有 comm 實例 objects

1. __doc__:表示類的描述信息

class Foo(object):

    ‘‘‘
    描述信息
    ‘‘‘

    def func(self):
        pass
print(Foo.__doc__)

>>>描述信息

2. __module__ 和 __class__ :

__module__ 表示當前操作的對象在哪個個模塊

__class__ 表示當前操作的對象的類是什麽

3. __init__ :構造方法,通過類創建對象時,自動觸發執行

4.__del__: 析構方法,當對象在內存中被釋放時,自動觸發執行

5. __call__ :對象後面加括號,觸發執行

class Foo(object):

    ‘‘‘
    描述信息
    ‘‘‘

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

a=Foo()# 執行 __init__

a() # 執行 __call__
>>>call

6. __dict__ :查看類或對象中的所有成員

通過類調用:打印類的所有屬性,不包括實例屬性

class Foo(object):
    def __init__(self,name,age):
        self.name=name
        self.age
=age def func(self): print(this is a function) print(Foo.__dict__) >>> {__module__: __main__, __init__: <function Foo.__init__ at 0x02FACBB8>, func: <function Foo.func at 0x02FACB70>, __dict__: <attribute __dict__ of Foo objects>, __weakref__
: <attribute __weakref__ of Foo objects>, __doc__: None}

通過實例調用:打印所有實例屬性,不包括類屬性

f=Foo(q1ang,25)
print(f.__dict__)
>>>
{name: q1ang, age: 25}

7.__str__: 如果一個類中定義了__str__方法,那麽在打印 對象 時,默認輸出該方法的返回值

class Foo(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def __str__(self):
        print(this is a function)
        return return
f=Foo(q1ang,25)
print(f)
>>>
this is a function
return

8.__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] = q1ang  # 自動觸發執行 __setitem__
del obj[k1]
>>>
__getitem__ k1
__setitem__ k2 q1ang
__delitem__ k1

9. __new__ \ __metaclass__:

【面向對象】類的特殊成員方法