美文网首页
Python面向对象编程

Python面向对象编程

作者: 月影追猎者 | 来源:发表于2019-04-30 10:05 被阅读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__ 乘方
    

    相关文章

      网友评论

          本文标题:Python面向对象编程

          本文链接:https://www.haomeiwen.com/subject/gbzpnqtx.html