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 多态

相关推荐
关于不上作者榜就原神启动那件事8 分钟前
Java基础学习
java·开发语言·学习
小黑_深呼吸39 分钟前
Prometheus实战教程:k8s平台-Mysql监控案例
运维·学习·kubernetes·prometheus
小李不想说话1 小时前
HTTPS 加密原理
java·网络·网络协议·学习·安全·http·https
秋野酱2 小时前
基于javaweb的SpringBoot驾校预约学习系统设计与实现(源码+文档+部署讲解)
spring boot·后端·学习
houliabc3 小时前
【2025年软考中级】第一章1.5 输入输出技术(外设)
笔记·学习·证书·软考·计算机系统
请你喝好果汁6413 小时前
学习笔记:Conda 环境共享
笔记·学习·conda
qq_386322694 小时前
华为网路设备学习-22(路由器OSPF-LSA及特殊详解)
学习·华为·智能路由器
oneDay++5 小时前
# IntelliJ IDEA企业版集成AI插件「通义灵码」全流程详解:从安装到实战
java·经验分享·学习·intellij-idea·学习方法
代码小将5 小时前
Leetcode76覆盖最小子串
笔记·学习·算法
努力的小帅5 小时前
C++_STL_map与set
开发语言·数据结构·c++·学习·leetcode·刷题