版权声明:此文章转载自_infocool
原文链接:http://www.infocool.net/kb/python/201610/205915.html
如需转载请联系听云College团队成员小尹 邮箱:yinhy#tingyun.com
Python中的特殊属性
定义如下类: class Foo(object):"""Foo class definition"""
类的特殊属性都有哪些呢?
__name__
Foo.__name__ 类的名字
__doc__
Foo.__doc__ 类的文档字符串
__bases__
Foo.__bases__ 类的所有父类构成的元组
__dict__
Foo.__dict__ 类的属性
__module__
Foo.__module__ 类定义所在的模块
__class__
Foo.__class__ 类实例所属的类,与type(Foo)返回值相同
示例
如:
print(Foo.__name__)print(Foo.__doc__)
print(Foo.__bases__)
print(Foo.__dict__)
print(Foo.__module__)
print(Foo.__class__)
输出如下:
FooFoo class definition
(<class 'object'>,)
{'__weakref__': <attribute '__weakref__' of 'Foo' objects>, '__doc__': 'Foo class definition', '__dict__': <attribute '__dict__' of 'Foo' objects>, '__module__': '__main__'}
__main__
<class 'type'>
说明
__name__常常用在需要得到类的字符串的名字时,使用type(Foo)时会返回类型实例。
__doc__是文档字符串,定义时需要紧跟在class定义的下一行。
__bases__用来处理类继承,它包含了由所有父类组成的元组。
__dict__由类的数据属性组成。访问类的属性时,会搜索该字段,如果在__dict__中没有找到,将会在基类中__dict__中进行搜索,而搜索的基类是按照出现在类定义继承从左到右出现的顺序。对类属性修改只会影响在本类,并不会影响父类中的__dict__。
__module__界定了类所属的模块。
__class__新式类定义此属性,表明类已经是一种类型。
想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。