Python面向对象(类的成员之属性)
生活随笔
收集整理的這篇文章主要介紹了
Python面向对象(类的成员之属性)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
day24
類的成員之屬性
1 class Foo(): 2 def bar(self): 3 print("bar") 4 5 @property 6 def per(self): 7 print('123') 8 return 1 9 10 obj = Foo() 11 obj.bar() 12 13 r = obj.per#實際上是方法,但通過字段的方式訪問 14 print(r) 實際上是方法,但通過字段的方式訪問。執行結果: bar 123 1Process finished with exit code 0
?@property,@per.setter,@per.deleter
1 class Foo(): 2 def __init__(self): 3 self.name = 'a' 4 5 def bar(self): 6 print("bar") 7 8 @property#獲取 9 def per(self): 10 print('1234') 11 return 1 12 13 @per.setter#設置 14 def per(self, val): 15 print(val) 16 17 @per.deleter 18 def per(self): 19 print(666) 20 obj = Foo() 21 obj.bar() 22 23 r = obj.per#實際上是方法,但通過字段的方式訪問,對應@property 24 print(r) 25 26 obj.per = 123#對應 @per.setter 27 del obj.per#對應 @per.deleter執行結果:
bar 1234 1 123 666Process finished with exit code 0?屬性的另一種表達方式
?
1 class Foo: 2 3 def f1(self): 4 return 123 5 6 def f2(self,v): 7 print(v) 8 def f3(self): 9 print('del') 10 11 per = property(fget=f1,fset=f2,fdel=f3,doc='adfasdfasdfasdf') 12 13 # @property 14 # def per(self): 15 # return 123 16 17 18 obj = Foo() 19 ret = obj.per#對應與@property 20 print(ret) 21 22 obj.per = 123456#對應于@per.setter 23 24 del obj.per#對應于@per.deleter?property中最多寫三個函數,doc為介紹。
Django中有用到以上方式。
執行結果:
123 123456 delProcess finished with exit code 0?
轉載于:https://www.cnblogs.com/112358nizhipeng/p/9825619.html
總結
以上是生活随笔為你收集整理的Python面向对象(类的成员之属性)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: collection 多态 会自动转型为
- 下一篇: websocket python爬虫_p