Python类的特殊属性

版权声明:此文章转载自_infocool 原文链接:http: www infocool net kb Python 201610 205915 html 如需转载请联系听云College团队

版权声明:此文章转载自_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__)

输出如下:

Foo

Foo 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__新式类定义此属性,表明类已经是一种类型。

想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。

未登录用户
全部评论0
到底啦