python中的魔法属性和方法
生活随笔
收集整理的這篇文章主要介紹了
python中的魔法属性和方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
魔法屬性:
首先,我們先談一談什么叫做魔法屬性?
魔法屬性和方法是Python內置的一些屬性和方法,有著特殊的含義。命名時前后加上兩個下劃線,在執行系統特定操作時,會自動調用。
那么接下來,我們就列舉一些常見的魔法屬性和方法。
1._init_:
初始化方法,在創建類對象的時候,會自動執行方法
class Student(object):def __init__(self,name,age):self.name=nameself.age=agedef haha(self):print(self.name)print(self.age)stu=Student("蛋蛋",18) # ----->自動執行__init__ 方法 print(stu.haha())2._str_:
在輸出打印 對象 時,默認輸出該方法的返回值。
class Student(object):def __str__(self):return "你好可愛啊?" stu=Student() print(stu) # ----->自動執行__str__方法,輸出,你好可愛啊3._del_:
當對象不使用了,在內存中銷毀時,自動執行該方法
注:改操作通常是Python的解釋器在進行垃圾回收,釋放內存時自動完成。
4._doc_:
把類和方法的一些注釋描述信息,打印出來
class Student(object):''' 這是我定義的一個hahah方法,你看見沒啊'''def hahah(self):passstu=Student() print(stu.__doc__) #---->輸出: 這是我定義的一個hahah方法,你看見沒啊5._call_:
當在對象后面加上(),會自動執行該方法
注:_init__方法的執行是由創建對象觸發的,即:對象 = 類名() ;而對于 _call 方法的執行是由對象后加括號觸發的,即:對象() 或者 類()()
6._dict_:
列出類或對象中所有屬性
class Student(object):gender='男'def __init__(self,name,age):self.name=nameself.age=agedef fun(self, *args, **kwargs):print('這是fun')#print(Student.__dict__) stu=Student('老王',19) print(stu.__dict__)看看輸出結果:
{'name': '老王', 'age': 19}7._module_:
表示當前操作的對象在那個模塊
class Student(object):def __init__(self,name,age):self.name=nameself.age=agedef fun(self, *args, **kwargs):print('這是fun')stu=Student('老王',19) print(stu.__module__) #-----> 輸出__main__8._class_:
表示當前操作的對象的類是什么
class Student(object):def __init__(self,name,age):self.name=nameself.age=agedef fun(self, *args, **kwargs):print('這是fun')stu=Student('老王',19) print(stu.__class__) #輸出-----》<class '__main__.Student'>9._getitem_、setitem、delitem:
用于索引操作,如字典。以上分別表示獲取、設置、刪除數據
class Student(object):def __getitem__(self, key):print('__getitem__', key)def __setitem__(self, key, value):print('__setitem__', key, value)def __delitem__(self, key):print('__delitem__', key)stu =Student()result = stu['k1'] # 自動觸發執行 __getitem__ stu['k2'] = '伙計' # 自動觸發執行 __setitem__ del stu['k1'] # 自動觸發執行 __delitem__輸出結果:
__getitem__ k1 __setitem__ k2 伙計 __delitem__ k1參考文獻:
python中的魔法方法及屬性
總結
以上是生活随笔為你收集整理的python中的魔法属性和方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的单继承,多继承和mro顺
- 下一篇: python中的with上下文管理器