本文最后更新于 258 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
公有、私有、特殊以及静态的方法和属性
一些以 _
开头的都是对象的特殊方法和属性。通常来说:
- 以字母开头都是公有的方法和属性,可以直接调用;
- 在Python中,“私有”的方法和属性以
_
开头,不过,并不存在真正私有的方法和属性,所谓“私有”只是不会被代码自动完成所记录,无法在按键时自动补全。 - 以
__
开头并以__
结尾的是一些系统内置的属性和方法。 - 以
__
开头不以__
结尾的是一些更加特殊的方法,调用方式最为复杂。 - 装饰器@staticmethod可以生成一个静态方法,静态方法可以用类本身去调用,在定义时,静态方法不需要加self参数。
例如:
class MyClass(object):
@staticmethod
def static():
print("I'm a static method!")
pub = "public"
def __init__(self):
self._spe = "special"
print("I'm a special method!")
def _private(self):
print("I'm a private method!")
def public(self):
print("I'm a public method!")
def __really_special(self):
print("I'm a really special method!")
构造对象时调用了一个特殊的方法.__init__()
:
m = MyClass()
I'm a special method!
查看公有属性和特殊属性:
m.pub
'public'
m._spe
'special'
公有方法:
m.public()
I'm a public method!
私有方法:
m._private()
I'm a private method!
以__
开头不以__
结尾的方法调用方式有所不同,需要加上类名:
m._MyClass__really_special()
I'm a really special method!
静态方法用类去调用:
MyClass.static()
I'm a static method!