Python面向对象编程

2019-04-30  本文已影响0人  月影追猎者

类(Class):用于描述具有相同的属性和方法的对象的集合。
方法:类中定义的函数。
类变量:类变量在整个实例化的对象中是公用的。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关数据。
方法重写(Override):从父类继承的方法不能满足子类的需求,可以对其进行改写。
局部变量:定义在方法中的变量,只作用于当前实例的类。
实例变量:在类的声明中,属性是用变量来表示的。这种变量称为实例变量,在类声明的内部但在类的其他成员方法之外。
继承:即一个派生类(derived class)继承基类(base class)的字段与方法。继承允许把一个派生类的对象作为一个基类对象对待,即模拟“是一个(is-a)”关系。
实例化:创建一个类的实例,类的具体对象。
对象:通过类定义的数据结构实例,包括数据成员(类变量、实例变量)与方法。

Python的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。

类定义

class ClassName:
    <statement>

类对象
类对象支持属性引用与实例化两种操作。
属性引用使用与Python中所有的属性引用相同的标准语法:obj.name。

类的构造方法
类有一个名为init()的特殊方法,即构造方法,该方法在类实例化时会自动调用。

def __init__(self[, param]):
    [self.data = data]

self为类的实例。类的方法必须有额外的第一个参数,惯例为self。

继承

class DerivedClassName(BaseClassName):
    <statement>

需要注意基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,则从左至右搜索。

BaseClassName必须与派生类定义在相同作用域内。
在其它模块中定义基类

class DerivedClassName(modname.BaseClassName):
    <statement>

super()函数用于调用父类的方法。

super(type[, object-or-type]).method()

类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问,在类内部的方法中使用时self.__private_attrs。

类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用self.__private_methods,不能在类的外部调用。

类的专有方法

__init__ 构造函数,在生成对象时调用
__del__ 析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__ 按照索引赋值
__getitem__ 按照索引获取值
__len__ 获得长度
__cmp__ 比较运算
__call__ 函数调用
__add__ 加运算
__sub__ 减运算
__mul__ 乘运算
__truediv__ 除运算
__mod__ 求余运算
__pow__ 乘方
上一篇下一篇

猜你喜欢

热点阅读