classgood():
def__init__
(self):
self.original=100self.discount = 0.8@property
defprice(self):
new_price=self.original*self.discount
return
new_price
@price.setter
defprice(self,value):
self.original=value
@price.deleter
defprice(self,value):
delself.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
aclass
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__)#
print(a.__class__)#
print(a.__dict__)#
{}print(c.__dict__)#
#s=str(123).__iter__()
#print(s.__next__)
defmy_range(bound):
for i in
range(bound):
return
ia=my_range(100)
物件導向高階2 繼承
繼承 var a b a 把a這個物件賦給b這個物件 b.name jack alert a.name 修改了a的值 b for var attr in a b.name jack alert a.name anikin 不會修改a物件的值,這個就是拷貝繼承的核心原理 繼承 子類不影響父類 func...
物件導向的高階程式設計
在定義class的時候,定義乙個特殊的 solts 變數,來限制class例項能新增的屬性 class student object solts name age 用tuple定義允許繫結的屬性名稱 s student 建立新的例項 s.name michael 繫結屬性 name s.age 25...
物件導向及高階
import hashlib password 125156 md5 obj hashlib.md5 bin encode md5 obj.update password.encode ret md5 obj.hexdigest print ret 注 物件 即 bin password 在被雜湊 ...