上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段、方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用。无论人或事物往往都有不按套路出牌的情况,Python的类成员也是如此,存在着一些具有特殊含义的成员,详情如下:

1. __doc__

  表示类的描述信息

class Foo:

""" 描述类信息,这是用于看片的神奇 """

def func(self):

pass

print Foo.__doc__

#输出:类的描述信息

2.. __init__

  构造方法,通过类创建对象时,自动触发执行。

class Foo:

def __init__(self, name):

self.name = name

self.age = 18

obj = Foo('wupeiqi') # 自动执行类中的 __init__ 方法

3. __call__

  对象后面加括号,触发执行。

注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()

class Foo:

def __init__(self):

pass

def __call__(self, *args, **kwargs):

print '__call__'

obj = Foo() # 执行 __init__

obj() # 执行 __call__

4. __dict__

  类或对象中的所有成员

上文中我们知道:类的普通字段属于对象;类中的静态字段和方法等属于类,即:

class Province:

country = 'China'

def __init__(self, name, count):

self.name = name

self.count = count

def func(self, *args, **kwargs):

print 'func'

# 获取类的成员,即:静态字段、方法、

print Province.__dict__

# 输出:{'country': 'China', '__module__': '__main__', 'func': , '__init__': , '__doc__': None}

obj1 = Province('HeBei',10000)

print obj1.__dict__

# 获取 对象obj1 的成员

# 输出:{'count': 10000, 'name': 'HeBei'}

obj2 = Province('HeNan', 3888)

print obj2.__dict__

# 获取 对象obj1 的成员

# 输出:{'count': 3888, 'name': 'HeNan'}

print obj2.__dict__['name']

# 输出:HeNan

5. __str__

  如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值。

class Foo:

def __str__(self):

return 'wupeiqi'

obj = Foo()

print obj

# 输出:wupeiqi

 

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。