码迷,mamicode.com
首页 > 编程语言 > 详细

Python类的特点 (2)

时间:2016-06-15 20:55:03      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

测试代码:

 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类的特点 (2)

标签:

原文地址:http://www.cnblogs.com/aaronhoo/p/5588806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!