【面向對象】類的特殊成員方法
阿新 • • 發佈:2018-05-23
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__:
【面向對象】類的特殊成員方法