Python类的特点

Posted morein2008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python类的特点相关的知识,希望对你有一定的参考价值。

测试代码:

 1 #encoding:utf-8
 2 class Parent(object):
 3     x=1 #x是Parent类的属性(字段)
 4     ls=[1,2] #ls是一个列表,也是Parent类的属性(字段)
 5         
 6 class Child1(Parent):
 7     y=2
 8 
 9 class Child2(Parent):
10     pass
11     
12 if __name__==__main__:
13     ‘‘‘对于类属性:子类与父类的关系是,如果子类重写了继承的值就用子类自己的属性值,否则就用父类的属性值‘‘‘
14     print Parent.x,Child1.x,Child2.x
15     Child1.x=2
16     print Parent.x,Child1.x,Child2.x
17     Parent.x=3
18     print Parent.x,Child1.x,Child2.x
19     print --------------------
20     
21     ‘‘‘类属性和实例属性的关系:‘‘‘
22     ‘‘‘#1:若实例的属性值没有重新赋值,则类属性值的改变也会导致实例的属性值的改变。‘‘‘
23     p=Parent()
24     print Parent.x,p.x
25     Parent.x=5
26     print Parent.x,p.x
27     print --------------------
28     
29     ‘‘‘#2:对于不可变类型(数值型、bool型、字符串型等)的属性值,若实例的属性值已经重新赋值,则类的属性值与该实例的属性值相互独立,互不影响。‘‘‘
30     p.x=11
31     print Parent.x,p.x
32     Parent.x=6
33     print Parent.x,p.x
34     print --------------------
35     
36     ‘‘‘#3.对于可变类型(数值型、bool型、字符串型等)的属性值,实例的属性值和类的属性值,两者是是始终相关联的,实例属性值的改变会引起类属性值的改变,反之亦然。‘‘‘
37     print Parent.ls,p.ls
38     p.ls.append(3)
39     print Parent.ls,p.ls
40     p2=Parent()
41     p2.ls.append(4)
42     print p.ls,p2.ls,Parent.ls
43     print --------------------
44     
45     Parent.ls.append(9)
46     print Parent.ls,p.ls
47     print --------------------
48     
49     ‘‘‘临时对不存在的实例属性进行赋值,是允许的,但只对该实例对象有效,对类及其他实例对象无效‘‘‘
50     p3=Parent()
51     p.w=12
52     print p.w
53     print p3.w #有时报错,有时不报错,应该是编译器Python2.7.11的bug,正常应该报错
54     print Parent.w #报错
55     
56     ‘‘‘临时对不存在的类属性进行赋值,也是允许的,并且会影响所有实例‘‘‘
57     Parent.newField=10
58     print Parent.newField,p.newField,p2.newField,p3.newField#均为10
59     

输出结果:(忽略第53、54行的错误的话)

1 1 1
1 2 1
3 2 3
--------------------
3 3
5 5
--------------------
5 11
6 11
--------------------
[1, 2] [1, 2]
[1, 2, 3] [1, 2, 3]
[1, 2, 3, 4] [1, 2, 3, 4] [1, 2, 3, 4]
--------------------
[1, 2, 3, 4, 9] [1, 2, 3, 4, 9]
--------------------
12
10 10 10 10

 

以上是关于Python类的特点的主要内容,如果未能解决你的问题,请参考以下文章

47Python面向对象中的继承有什么特点?

Python类的特点

Python类的特点 :静态方法与类方法

python类的继承

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段