1. 程式人生 > >面向對象的高級2

面向對象的高級2

閉操作 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