[Python 学习笔记] 9: Class
2009-10-13 00:00:00 来源:WEB开发网(2) 调用类型内部方法,需要省略 self 参数。
>>> class Class1:
def __init__(self):
self.__test("Hello, World!")
def __test(self, s):
print s
>>> Class1()
Hello, World!
<__main__.Class1 instance at 0x00D37B48>
我们可以在成员名称前添加 "__" 使其成为私有成员。
>>> class Class1:
__i = 123
def __init__(self):
self.__x = 0
def __test(self):
print id(self)
>>> Class1.i
Traceback (most recent call last):
File "<pyshell#102>", line 1, in <module>
Class1.i
AttributeError: class Class1 has no attribute 'i'
>>> Class1().__x
Traceback (most recent call last):
File "<pyshell#103>", line 1, in <module>
Class1().__x
AttributeError: Class1 instance has no attribute '__x'
>>> Class1().test()
Traceback (most recent call last):
File "<pyshell#104>", line 1, in <module>
Class1().test()
AttributeError: Class1 instance has no attribute 'test'
事实上这只是一种规则,并不是编译器上的限制。我们依然可以用特殊的语法来访问私有成员。
>>> Class1._Class1__i
123
>>> a = Class1()
>>> a._Class1__x
0
>>> a._Class1__test()
13860376
更多精彩
赞助商链接