VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 开发中常遇到的Python陷阱和注意点(4)

类属性隐藏

在Python中,有类属性和实例属性。类属性是属于类本身的,被所有的类实例共享。

类属性可以通过类名访问和修改,也可以通过类实例进行访问和修改。但是,当实例定义了跟类同名的属性后,类属性就被隐藏了。

 

看下面这个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Student(object):
    books = ["Python""JavaScript""CSS"]
    def __init__(self, name, age):
        self.name = name
        self.age = age
    pass
    
wilber = Student("Wilber"27)
print "%s is %d years old" %(wilber.name, wilber.age)
print Student.books
print wilber.books
wilber.books = ["HTML""AngularJS"]
print Student.books
print wilber.books
del wilber.books
print Student.books
print wilber.books

代码的结果如下,起初wilber实例可以直接访问类的books属性,但是当实例wilber定义了名称为books的实例属性之后,wilber实例的books属性就“隐藏”了类的books属性;当删除了wilber实例的books属性之后,wilber.books就又对应类的books属性了。

1
2
3
4
5
6
7
Wilber is 27 years old
['Python''JavaScript''CSS']
['Python''JavaScript''CSS']
['Python''JavaScript''CSS']
['HTML''AngularJS']
['Python''JavaScript''CSS']
['Python''JavaScript''CSS']

相关教程