共有,私有和特殊方法和属性

  • 我们之前已经见过 special 方法和属性,即以 __ 开头和结尾的方法和属性
  • 私有方法和属性,以 _ 开头,不过不是真正私有,而是可以调用的,但是不会被代码自动完成所记录(即 Tab 键之后不会显示)
  • 其他都是共有的方法和属性
  • __ 开头不以 __ 结尾的属性是更加特殊的方法,调用方式也不同:
In [1]:
class MyClass(object):
    def __init__(self):
        print "I'm special!"
    def _private(self):
        print "I'm private!"
    def public(self):
        print "I'm public!"
    def __really_special(self):
        print "I'm really special!"
In [2]:
m = MyClass()
I'm special!
In [3]:
m.public()
I'm public!
In [4]:
m._private()
I'm private!

注意调用方式:

In [5]:
m._MyClass__really_special()
I'm really special!