【Python学习】—面向对象(九)

简介: 【Python学习】—面向对象(九)

一、初识对象

类中不仅可以定义属性来记录数据,也可以定义函数,用来记录行为,类中定义的属性(变量)我们称之成员变量,类中定义的行为(函数),我们称之为成员方法。

成员方法的定义语法

self的作用

  • 表示对象本身的意思
  • 只有通过self,成员方法才能访问类的成员变量
  • self出现在形参列表中,但是不占用参数位置,无需例会
class Student:
      name=None
      def say_hi(self):
          print(f"大家好,我是{self.name},欢迎大家多多关照")
stu=Student()
stu.name="张三"
stu.say_hi()

二、基于类创建对象

class Clock:
    id=None
    price=None
    def ring(self):
        import winsound
        winsound.Beep(2000, 3000)
clock1=Clock()
clock1.id='1112'
clock1.price=233
print(f"闹钟ID:{clock1.id},价格{clock1.price}")
clock1.ring()
clock2=Clock()
clock2.id='21122'
clock2.price=99.00
print(f"闹钟ID:{clock2.id},价格{clock2.price}")
clock2.ring()

三、构造方法

Python类可以使用:_init_()方法,称为构造方法

可以实现:

  • 在创建类对象(构造类)的时候,会自动执行
  • 在创建类对象( 构造类)的时候,将传入的参数自动传递给_init_方法使用
class Student:
    name = None
    age=None
    tel=None
    def __init__(self,name,age,tel):
        self.name=name
        self.age=age
        self.tel=tel
        print("student类创建了一个对象")
stu=Student("Cai",20,'13222222222')
print(stu.name)
print(stu.age)
print(stu.tel)

构造方法注意事项

四、内置方法

__init__构造方法,是Python类内置的方法之一,这些内置的类方法,各自有各自特殊的功能,这些内置方法我们称为魔术方法

class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def __lt__(self,other):
        return self.age<other.age
stu1=Student("张三",20)
stu2=Student("李四",17)
print(stu1<stu2)
print(stu1>stu2)

class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def __le__(self,other):
        return self.age <= other.age
stu1=Student("张三",20)
stu2=Student("李四",20)
print(stu1<=stu2)#True
print(stu1>=stu2)#True
class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def __eq__(self,other):
        return self.age == other.age
stu1=Student("张三",20)
stu2=Student("李四",20)
print(stu1==stu2)#True

总结

五、封装

面向对象的三大特性:继承、封装、多态

封装

私有成员

私有成员无法被类对象使用,但是可以被其他的成员使用

继承

class 类名(父类名):
  内容体

pass的关键字

pass是一个普通的占位符,保证函数或者类定义的完整性,表示无内容、空的意思

复写

在子类中重新定义同名的属性或方法

六、类型注解语法

var_1: int=10
var_2: str="caicai"
var_3: bool=True
class Student:
    pass
stu:Student=Student()
my_list:list=[1,2,3]
my_tuple:tuple=(1,2,3)
my_dict:dict={"caicai":123}
my_list:list[int]=[1,23,3]
my_tuple:tuple[int,str,bool]=(1,"cai",True)

函数类型注解

七、多态

多态指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态


相关文章
|
4月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
132 61
|
1月前
|
存储 算法 API
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
182 82
|
4月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
240 3
|
20天前
|
Python
Python 高级编程与实战:深入理解面向对象与并发编程
本文深入探讨Python的高级特性,涵盖面向对象编程(继承、多态、特殊方法、类与实例属性)、异常处理(try-except、finally)和并发编程(多线程、多进程、异步编程)。通过实战项目如聊天服务器和异步文件下载器,帮助读者掌握这些技术,编写更复杂高效的Python程序。
|
25天前
|
存储 API 数据安全/隐私保护
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
73 6
|
26天前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
1月前
|
Python
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
26 3
|
3月前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
3月前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
2月前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。