Python 中的类和对象

来源:互联网 发布:零售门店经营数据分析 编辑:程序博客网 时间:2024/04/30 14:38

属性就是属于另一个对象的数据或者函数元素,可以通过我们熟悉的句点属性
标识法来访问。一些 Python 类型比如复数有数据属性(实部和虚部),而另外一些,像列表和字典,
拥有方法(函数属性)。

通常,Python 中的所有方法都有一个限制:在调用前,需要创建一个实例。

数据属性仅仅是所定义的类的变量。它们可以像任何其它变量一样在类创建后被使用,并且,
要么是由类中的方法来更新,要么是在主程序其它什么地方被更新。
这种属性已为 OO 程序员所熟悉,即静态变量,或者是静态数据。它们表示这些数据是与它们所
属的类对象绑定的,不依赖于任何类实例。如果你是一位 Java 或 C++程序员,这种类型的数据相当
于在一个变量声明前加上 static 关键字。
静态成员通常仅用来跟踪与类相关的值。大多数情况下,你会考虑用实例属性,而不是类属性。


要知道一个类有哪些属性,有两种方法。最简单的是使用 dir()内建函数。另外是通过访问类的
字典属性__dict__,这是所有类都具备的特殊属性之一。

dir()返回的仅是对象的属性的一个名字列表,而__dict__返回的是一个字典,
它的键(keys)是属性名,键值(values)是相应的属性对象的数据值。


__doc__及__module__,是所有类都具备的特殊类属性(另外还有__dict__)。。内建
的 vars()函数接受类对象作为参数,返回类的__dict__属性的内容。

对任何类C,
C.__name__  类C的名字(字符串)
C.__doc__ 类C的文档字符串
C.__bases__ 类C的所有父类构成的元组
C.__dict__  类C的属性
C.__module__  类C定义所在的模块(1.5 版本新增)
C.__class__ 实例C对应的类(仅新式类中)


__doc__是类的文档字符串,与函数及模块的文档字符串相似,必须紧随头行(header line)
后的字符串。文档字符串不能被派生类继承,也就是说派生类必须含有它们自己的文档字符串。


__dict__属性包含一个字典,由类的数据属性组成。访问一个类属性的时候,Python 解
释器将会搜索字典以得到需要的属性。如果在__dict__中没有找到,将会在基类的字典中进行搜索,
采用“深度优先搜索”顺序。基类集的搜索是按顺序的,从左到右,按其在类定义时,定义父类参
数时的顺序。对类的修改会仅影响到此类的字典;基类的__dict__属性不会被改动的。









原创粉丝点击