python概念-各类绑定的概念和property的变态一面

 1 # 编辑者:闫龙
 2 # 1.什么是绑定到对象的方法,如何定义,如何调用,给谁用?有什么特性
 3 #在类中定义的(self)方法都是绑定到对象的方法
 4 #定义
 5 class a:
 6     def b(self):#绑定到对象的方法
 7         pass
 8 #调用:
 9 c = a()
10 c.b()#调用a类中绑定到对象c的b(self)方法
11 #既然是绑定到对象的方法,当然是给实例化之后的对象使用了
12 #当对象调用方法时,对象会将自己当做第一个参数传递给方法
13 
14 # 2.什么是绑定到类的方法,如何定义,如何调用,给谁用?有什么特性
15 #静态方法和类方法都是绑定到类的方法
16 #静态方法定义:
17 class ClassStaticFunc:
18     @staticmethod#定义一个静态方法需要调用的装饰器staticmethod
19     def StaticFunc():#被staticmethod修饰过的StaticFunc方法就是一个静态方法
20         pass
21 #调用:
22 ClassStaticFunc.StaticFunc()#无需实例化直接类名打点儿调用类中的静态方法
23 #静态方法是让类去调用的方法
24 #需实例化直接类名打点儿调用类中的静态方法,静态方法可以被实例化的对象调用,但是一般不这么使用
25 #类方法定义:
26 class ClassFunc:
27     @classmethod#定义一个类方法需要调用的装饰器classmethod
28     def ClassMethod(cls):#被classmethod修饰过的ClassMethod方法就是一个类方法
29         pass
30 #调用:
31 ClassFunc.ClassMethod()#无需实例化直接类名打点儿调用类方法
32 #类方法顾名思义是与类绑定的方法,一定是给类调用的方法
33 #当类调用类方法时,会将当前调用方法的类当做第一个参数传递到方法中
34 # 3.什么是解除绑定的函数,如何定义,如何调用,给谁用?有什么特性
35 #定义在类的内部,并且被staticmethod修饰过的方法
36 #定义:
37 class NoBandFunc:
38     @staticmethod
39     def NoBang(a,b,c):
40         pass
41 #调用:
42 nbf = NoBandFunc.NoBang(1,2,3)
43 #or:
44 nbfs = NoBandFunc()
45 nbf1 = nbfs.NoBang(1,2,3)
46 #解除绑定方法不在自动传值
47 
48 # 4.什么是property,如何定义,如何使用,给谁用,什么情况下应该将一个属性定义成property,有什么好处?
49 #是一个将方法隐藏变更调用方法的方式,让用户看起来是在调用属性而不是方法,property修饰过的方法,会产生该方法的setter,del方法用来修改和删除属性
50 #定义
51 class PropertyClass:
52     def __init__(self,name):
53         self.__Name = name
54     @property
55     def PropertyFunc(self):
56         print(self.__Name)
57     @PropertyFunc.setter
58     def PropertyFunc(self,name):
59         self.__Name = name
60         print(self.__Name)
61     @PropertyFunc.deleter
62     def PropertyFunc(self):
63         del self.__Name
64 #调用:
65 pc = PropertyClass("egon")
66 pc.PropertyFunc
67 pc.PropertyFunc("egon_SomeBody")
68 del pc.PropertyFunc
69 #一般在__属性的情况下使用property,这样可以有效的隐藏,展示,控制__属性对用户的影响
原文地址:https://www.cnblogs.com/DragonFire/p/6748067.html