1 class Foo: 2 def __init__(self,all_count): 3 self.all_count = all_count 4 5 #属性,拥有字段功能的方法 6 @property 7 def all_pager(self): 8 a1,a2 = divmod(self.all_count,10) 9 if a2 == 0: 10 return a1 11 else: 12 return a1+1 13 #属性的修改 14 @all_pager.setter 15 def all_pager(self,value): 16 print(value) 17 #属性的删除 18 @all_pager.deleter 19 def all_pager(self): 20 print('del all_pager') 21 22 p = Foo(101) 23 #方法的调用需要用对象.方法名() 24 #属性的调用要用对象.属性 25 print(p.all_pager) 26 #>>>11 27 #字段拥有修改的功能,属性也有 28 #属性的修改 29 p.all_pager = 111 30 #>>>111 31 del p.all_pager 32 #>>>def all_pager
1 #属性的另一种表现形式 2 class Pager: 3 def __init__(self, all_count): 4 self.all_count = all_count 5 6 def f1(self): 7 return 123 8 9 def f2(self): 10 pass 11 def f3(self): 12 pass 13 14 foo = property(fget = f1,fset = f2,fdel =f3) 15 16 p = Pager(101) 17 18 result =p.foo#调用属性,默认执行第一个参数的函数 19 print(result) 20 21 p.foo = 'alex'#修改属性值,默认执行第二个参数fset 22 23 del p.foo#删除属性,指定第三个参数的函数
转载于:https://www.cnblogs.com/liguangxu/p/5625103.html