面向對象的高級2
阿新 • • 發佈:2018-02-14
閉操作 rom for 面向 call 去年 括號 delete 刪除數據
class Good(): def __init__(self): self.original=100 self.discount = 0.8 @property def price(self): new_price=self.original*self.discount return new_price @price.setter def price(self,value): self.original=value @price.deleter def price(self,value):del self.original def __del__(self): pass def __call__(self, *args, **kwargs): pass # obj=Good() # print(obj.price) # obj.price = 200 # # del obj.price # print(obj.price) ‘‘‘ 1.__doc__:類的描述信息 2.__module__:當前操作的對象在哪個模塊 3.__class__:當前操作的類是什麽 4.__call__:對象後面加括號,觸發執行 5.__dict__:類或對象中的所有成員 6.__getitem__,__setitem__,__delitem__:用於索引操作,如字典。以上分別獲取、設置、刪除數據 7.__del__:析構方法,當對象在內存中被釋放時,自動觸發執行。可以寫一些,數據庫或是文件的關閉操作 8.__iter__:用於叠代器,之所以列表、字典、元祖可以進行for循環,是因為類型內部定義了__iter__‘‘‘ from copy文件 import A class C: ‘‘‘去年買個包‘‘‘ def __init__(self): self.name=‘dog‘ def __call__(self, *args, **kwargs): print(‘__call__‘) a=A() c=C() C()()#執行call方法 print(c.__doc__)#去年買個包 print(C.__module__)#__main__ print(a.__module__)#copy文件 print(c.__class__)#<class ‘__main__.C‘>print(a.__class__)#<class ‘copy文件.A‘> print(a.__dict__)#{} print(c.__dict__)#{‘name‘: ‘dog‘} # s=str(123).__iter__() # print(s.__next__) def my_range(bound): for i in range(bound): return i a=my_range(100)
面向對象的高級2