2.2Python类型之类(Class)

1.类定义

1.1类声明

类声明是 type 类的对象。

class 类名:
    #类体

1.2cls关键字

cls 关键字指向当前类。

2.成员定义

注意:Python 语言不支持类访问器属性。

class 类名:
    #类变量
    a = 1

    #类方法
    @classmethod
    def f1(cls):
        pass

    #实例getter
    @property
    def b(self):
        return self.__b

    #实例setter
    @b.setter
    def b(self, value):
        self.__b = value

    #实例方法
    def f2(self):
        pass

    #构造方法
    def __init__(self, b):
        #实例变量
        self.__b = b

3.继承

3.1方法继承

一个子类可以直接继承自多个父类,但如果多个父类存在同名方法时,左边的父类的同名方法的优先级高于右边的父类的同名方法。

子类会直接继承父类中可继承的方法,间接继承祖父类中可继承的方法,以此类推,直至没有可继承的方法。

class 子类名(父类名1, 父类名2, 父类名N):
    #子类体

3.2方法覆盖(Override)

如果从父类中继承过来的方法在子类中重新声明,则在子类中重新声明的方法会覆盖从父类中继承过来的方法。

注意:只需要方法名相同,就会发生覆盖。

注意:覆盖并不会影响父类中原来的方法。

class A:
    def f(self):
        return 1

class B(A):
    def f(self):
        return 2

print(B().f())  # 2

4.创建对象

4.1创建对象

#无实参
对象名 = 类名()

#有实参
对象名 = 类名(实参)

4.2方法重载(Overload)

Python 语言不支持方法重载。

4.3self关键字

self 关键字指向当前对象。

5.访问成员

#外部访问
类名.类变量名
类名.类方法名()
对象名.实例变量名
对象名.实例访问器属性名
对象名.实例方法名()
#内部访问
cls.类变量名
cls.类方法名()
self.实例变量名
self.实例访问器属性名
self.实例方法名()

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/python/pythonlang/35573.html

huoxiaoqiang的头像huoxiaoqiang

发表回复

登录后才能评论
分享本页
返回顶部