首页 > 代码库 > python 面向对象编程

python 面向对象编程

?? 类
?? 实例
?? 绑定与方法调用
?? 子类,派生和继承
?? 内建函数
?? 定制类
?? 私有性
?? 授权与包装
?? 新式类的高级特性
?? 相关模块

1 类

首先要知道的是python 2.2版本对类做出了更改。2.2版本及以后版本的类是python的新式类,之前的类属于旧式类。新式类是旧式类的一个超级。在定义类的时候,如果你没有显示的指定它的父类,那么你就定义了一个旧式类,反之是新式类。

1.1 类定义

类的创建语法在python中非常简单,如下:

class className(base):
     ‘‘‘class documentation string‘‘‘
     class_suite

上面的代码就定义了一个类,如果是C/C++在类定义之前要先声明类。但是在python中不用。

1.2 类属性

类属性应该包括数据属性和方法。学习类属性最重要的一点就是能将它和对象属性区分开。这里仅需要记住这一点,在学习到实例对象的时候可以再回过头来分析这句话。另外一点要注意的是类的属性,本身也应该是对象。比如下面一段代码中,A是一个类,att1是类的属性,我们访问A.att1.__class__其实是访问att1的类。

>>> class A:
...     pass
...
>>> A.att1=1
>>> A.att1.__class__
<type int>
View Code

查看类的属性可以用如下两种方式:

>>> dir(A)
[__doc__, __module__, att1]
>>> print A.__dict__
{__module__: __main__, __doc__: None, att1: 1}

第一种是用 dir 内建函数,第二种是通过__dict__属性。

python的类有一些固有的特殊属性,我们把它们列出来如下:

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

2 实例