2.2Python类型之类(Class)

1.类定义

类声明是 type 类的实例。

1.1类声明

class 类名:
    #类体

1.2cls关键字

cls 关键字指向当前类。

2.成员定义

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

class 类名:
    #类变量
    a = 1

    #类方法
    @classmethod
    def f1(cls):
        pass    
    
    #静态方法
    @staticmethod
    def f2():
        pass

    #实例getter
    @property
    def b(self):
        pass

    #实例setter
    @b.setter
    def b(self, 形参):
        pass

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

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

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

3.3super()函数

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

注意:super()函数支持的方法参考继承章节。

super().类方法()
super().实例访问器属性
super().实例方法()
super().__init__()

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

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2025年2月2日 00:08
下一篇 2025年2月2日 21:53

相关推荐

发表回复

登录后才能评论