标签:
python的面相对象中,拥有3个成员,字段、方法、属性
1 class Foo: 2 def __init__(self,name): 3 #公有字段name在类中与类外均能调用 4 self.name = name 5 6 def f1(self): 7 print(self.name) 8 9 obj = Foo(‘alex‘) 10 #内部调用 11 print(obj.name) 12 #>>>alex 13 #外部调用 14 obj.f1() 15 #>>>alex
1 class Foo: 2 def __init__(self,name): 3 #私有字段name只能在类中调用类外不能调用 4 self.__name = name 5 6 def f1(self): 7 print(self.__name) 8 9 10 obj = Foo(‘alex‘) 11 #内部调用 12 print(obj.name) 13 #>>>alex 14 #外部调用 15 obj.f1() 16 #>>>报错
1 #特殊成员 2 class Foo: 3 #构造方法 4 def __init__(self,name,age): 5 self.name =name 6 self.age = age 7 print(‘实例化对象时执行‘) 8 9 #析构方法 10 def __def__(self): 11 print(‘内存被释放时,自动触发执行‘) 12 def __call__(self): 13 print(‘call‘) 14 15 def __str__(self): 16 return ‘%s-%d‘%(self.name,self.age) 17 return ‘返回什么就显示什么‘ 18 p=Foo() 19 >>>实例化对象时执行 20 #>>>显示对象属于哪个类 21 print(p.__class__) 22 >>><class ‘__main__.Foo‘> 23 #执行call方法 24 p() 25 >>>call 26 #先执行构造方法在执行call方法 27 Foo()() 28 >>>实例化对象时执行 29 >>>call 30 31 obj1 = Foo(‘alex‘,71) 32 obj2 = Foo(‘eric‘,72) 33 #打印对象自动调用__str__方法 34 print(obj1) 35 >>>alex-71 36 print(obj2) 37 >>>eric-72 38 #执行str()方法的时候自动调用__str__方法 39 ret = str(obj1) 40 print(ret) 41 >>>alex-71
标签:
原文地址:http://www.cnblogs.com/liguangxu/p/5631616.html