day8-python-成员修饰符

Posted ppppppy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day8-python-成员修饰符相关的知识,希望对你有一定的参考价值。

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

 

以上是关于day8-python-成员修饰符的主要内容,如果未能解决你的问题,请参考以下文章

java成员变量与局部变量修饰符的区别

继承,修饰符

C#访问修饰符

访问修饰符,命名空间

staticfinal包访问修饰符内部类

C#编程(二十四)----------修饰符