WEB开发网
开发学院软件开发Python [Python 学习笔记] 9: Class 阅读

[Python 学习笔记] 9: Class

 2009-10-13 00:00:00 来源:WEB开发网   
核心提示: (2) 调用类型内部方法,需要省略 self 参数,[Python 学习笔记] 9: Class(3),>>>classClass1:def__init__(self):self.__test("Hello,World!")def__test(self,s)

(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

上一页  1 2 3 4 5 6 7  下一页

Tags:Python 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接