2.2Python类型之类(Class)

1.类定义

类定义是 type 类的实例。

1.1类声明

class 类名:
    #类体

1.2cls关键字

cls 关键字指向当前类。

2.成员定义

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

class 类名:
    #类变量
    a = 1

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

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

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

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

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

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().__init__()
super().类方法()
super().实例访问器属性
super().实例方法()

4.创建对象

4.1创建对象

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

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

4.2方法重载(Overload)

Python 语言不支持方法重载。

4.3self关键字

self 关键字指向当前对象。

5.访问成员

类名.类变量名
类名.类方法名()
类名.静态方法名()
对象名.实例变量名
对象名.实例访问器属性名
对象名.实例方法名()

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

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2025年2月1日 22:10
下一篇 2025年2月2日 16:50

相关推荐

  • 1.4Python语言的类型(Type)

    1.整数(int)类型 类型 范围 int 任意精度 进制 描述 二进制 以 0b(零和小写字母b) 或 0B(零和大写字母B) 开头,后续只能包含数字 0 和 1。 八进制 以 0o(零和小写字母o) 或 0O(零和大写字母O) 开头,后续只能包含数字(0~7)。 十六进制 以&nbsp…

    Python语言教程 2025年1月4日
    01240
  • 2.5Python类型之元组(Tuple)

    元组的索引是整数类型。 元组的索引是有序的。 元组的元素可以是任何 Python 数据类型,且不必都是同一个类型。 元组的元素的个数(长度)不可以动态改变,不可以添加、更改、删除元素。 元组的元素可以重复。 1.元组声明 2.访问元组 访问方式 描述 t[i] 索引 i 对应的元素 t[i:j] 索引 i(包含) 到 …

    Python语言教程 2025年2月5日
    01220
  • 2.3Python类型之字符串(String)

    1.单引号和双引号字符串字面量 Python 语言的单引号和双引号字符串字面量语法上没有区别,所以以下一并讲解。 单引号和双引号字符串字面量支持所有转义序列。 单引号和双引号字符串字面量不支持隐式的换行符。 2.三引号字符串字面量 三引号字符串字面量的另一个用途,详见“注释”-“文档字符串”章节。 三引号字符串字面量支…

    Python语言教程 2025年2月3日
    0670

发表回复

登录后才能评论