Python学习——第二阶段:面向对象

01 初识对象

  • 类比关于类、对象、对象赋值的关系:

02 成员方法

  • 基本语法:

    复制代码
    class 类名称:
        类的属性
        类的行为
  1. class是关键字,表示要定义类了
  2. 类的属性,即定义在类中的变量(成员变量
  3. 类的行为,即定义在类中的函数(成员方法)

成员方法的定义语法:

复制代码
def 方法名(self,形参1,.....,形参N):
    方法体
  • self关键字self关键字是成员方法定义的时候,必须填写的
  1. 它用来表示类对象自身的意思

  2. 当我们使用类对象调用方法的是,self会自动被python传入

  3. 在方法内部,想要访问类的成员变量,必须使用self


总结:

03 构造方法

  • init()方法,称为构造方法可以实现:【init前后都有两个下划线】
  1. 在创建类对象(构造类)的时候,会自动执行
  2. 在创建类对象(构造类)的时候,将传入参数自动传递给 init 方法使用。

总结:

04 魔术方法

  • __str__字符串方法【控制将类转为字符串的行为】:

__lt__小于符号比较方法:
*


__le__小于等于比较符号【lt只能比较小于和大于,不能比较小于等于和大于等于】:
*


__eq__比较运算实现方法:
*


总结:

05 封装

  • 私有成员(变量、方法):
  1. 私有成员变量: 变量名为__开头(2个下划线
  2. 私有成员方法: 方法名为__开头(2个下划线
  • 私有的变量和方法只能在类的内部进行调用,在外部即类对象处无法直接使用

总结:

06 继承

  • 基础语法【单继承】:

    python 复制代码
    class 类名(父类名):
        类内容体

基础语法【多继承】:

python 复制代码
class 类名(父类1,父类2,.....,父类N):
    类内容体
  • 注意:多个父类中,如果有同名的成员 ,那么默认以继承顺序(从左到右)为优先级。即:先继承的保留,后继承的被覆盖


总结:

07 复写父类成员和调用父类成员

  • 复写: 子类继承类的成员属性和成员方法后,如果对其"不满意",那么可以进行复写。即:在子类中重新定义同名的属性或方法
python 复制代码
class Phone:
    IMEI=None            #序列号
    producer = "ITCAST"    #厂商

    def ca11_by_5g(self)
         print(父类的5g通话")

class MyPhone(Phone):
    proucer ="ITHEIMA"            #复写父类属性
    
    def call_by_5g(self):         #复写父类方法
        print(子类的5g通话")

  • 调用父类同名成员: 一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员如果需要使用被复写的父类的成员,需要特殊的调用方式
  • 方式1:直接调用父类成员
  1. 使用成员变量:父类名
  2. 使用成员方法:父类名.成员方法(self)
  • 方式2:使用super()调用父类成员
  1. 使用成员变量:supe().成员变量
  2. 使用成员方法:super.成员方法()

总结:

08 变量的类型注解


  • 对变量设置类型注解:
python 复制代码
基础语法:变量:类型


  • 除了使用变量:类型,这种语法做注解外,也可以在注释中进行类型注解

注意:
*


总结:

09 对函数和方法、Union联合类型注解

  • 对形参进行类型注解:
  • 对返回值进行类型注解:
  • Union联合类型注解【注意先导包】:

10 多态

相关推荐
Camellia03117 分钟前
嵌入式学习--江协stm32day5
stm32·嵌入式硬件·学习
a_1571532498612 分钟前
SpringCloud学习笔记-4
笔记·学习·spring cloud
FserSuN42 分钟前
Prompt工程学习之思维树(TOT)
人工智能·学习·prompt
哆啦A梦的口袋呀1 小时前
基于Python学习《Head First设计模式》第九章 迭代器和组合模式
python·学习·设计模式
虾球xz1 小时前
CppCon 2015 学习:3D Face Tracking and Reconstruction using Modern C++
开发语言·c++·学习·3d
sponge'1 小时前
opencv学习笔记2:卷积、均值滤波、中值滤波
笔记·python·opencv·学习
竹言笙熙2 小时前
Polarctf2025夏季赛 web java ez_check
java·学习·web安全
过河不拆乔2 小时前
AWS 公开数据集下载与操作说明
学习·云计算·aws
小狗爱吃黄桃罐头2 小时前
正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-12.1 Linux内核启动流程简介
linux·arm开发·学习
Chef_Chen4 小时前
从0开始学习R语言--Day20-ARIMA与格兰杰因果检验
开发语言·学习·r语言