1. 面向对象基础

一、面向对象特性:封装、继承、多态

1️⃣ 面向对象:(python面向对象、也面向过程)
面向对象 是一种编程思想,是人们用计算机来解决问题的一种思维,它是基于面向过程的,更符合人们的思考习惯,将复杂的事情简单化,将执行者变为指挥者;
面向对象和面向过程 的区别:面向过程是编程基础、侧重过程;面向对象是对面向过程的再次封装处理,通过对象来模拟现实世界;
四个方面 :抽象、封装、继承、多态。把相同的行为抽象 出来归纳为类;通过类的封装 隐藏内部细节;通过继承 让父类的引用变量引用子类对象;通过多态使程序具有扩展性和可维护性。

二、面向对象基本概念:类和对象编程语法、self使用

1️⃣ 类及对象:类是对事物的抽象 描述,对象是对事物的具体 体现;

2️⃣ 如何创建类:

python 复制代码
# 语法:
class 类名:   # 定义类名:首字母大写
    方法列表   # 定义方法
python 复制代码
# 示例:定义一个汽车类,并有跑的功能
class Car:
    def run(self):
        print("跑...")

3️⃣ 如何创建对象及调用方法:

python 复制代码
对象名=类()	#创建对象
对象名.方法名() #调用方法
python 复制代码
# 示例:创建汽车类对象并调用方法
c1=Car()
c1.run()

4️⃣ self 关键字:是python内置关键字,表本类当前对象的引用;因为一个类可实例化多个对象,self 的作用:区分本类不同对象;

三、添加和获取对象属性:类外部、类内部获取属性

1️⃣ 获取对象属性 的方式:

在 类外 访问类中的成员(属性、方法)通过 对象名. 来调用;

在 类内 访问类中的成员(属性、方法)通过 self. 来调用;

2️⃣ 给对象添加属性 的方法:

对于类外 :对象名.属性=属性值;

对于类内 :魔法方法;
类外 通过 对象名.属性名=属性值 的方式设置属性,只有当前对象 有该设置的属性;若想所有对象都能用,则要在类内设置属性,使用魔法方法;

python 复制代码
# 示例
class Car:
    def run(self):
        print(f"{self}汽车在跑...")
    def work(self):
        print(f"work函数的self值:{self}")
        self.run() #'类内'访问类中的属性方法通过'self.'来调用;

car = Car()
car.run() #'类外'访问类中的属性方法通过'对象名.'来调用;

图示:

(图示:栈中c1、c2;Car()是对象,对象都存在堆中,开辟了一块空间,有自己的地址如0x01,把地址给栈中c1,让c1指向堆中地址0x01;Car类中有run()函数,但run()函数不会直接放在0x01的地址中,而是在方法区中开辟了一块空间将run函数放入,再将地址给到堆中Car()中,使其指向run就能访问了;

c2在堆中也存在了一个Car()对象,开辟了一个0x02的堆内存地址,c2指向此地址,Car对象有一个run函数,此函数在方法区开辟了一个0x03的地址,会存到堆中两个Car()中,只要是Car类里面就会有一块空间存0x03。所以color和number属性只有一个c1对应的Car()中有,所以只有c1可以访问,c2不能访问此属性;)

四、魔法方法:__init__、__str__、__del__

相关推荐
kobe_OKOK_5 小时前
__getattr__和__getattribute__如何用
python
全栈弄潮儿6 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
长沙三为智能科技6 小时前
家政小程序门店运营模块设计:会员、下单、派单、结算四段链路的落地拆解
python·小程序·内容运营
Cc.Y6 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
启观川6 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
码爸6 小时前
排序算法介绍
python·算法·排序算法
笔墨登场说说7 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
MoRanzhi12038 小时前
第 3 篇 · 数据清洗与特征工程:从问题判定到特征构建
python·pandas·数据清洗·特征工程·缺失值处理·异常值检测·特征编码
刘科领8 小时前
使用ollama & openweb-ui 本地搭建自己的AI
人工智能·python·ui·ai
专业程序开发源8 小时前
flask家电故障预测系统92491-计算机课程设计/毕业设计
vscode·python·sql·算法·flask·课程设计