前言:
面向对象编程,是许多编程语言都支持的一种编程思想。简单理解是:基于模板(类)去创建实体(对象),
使用对象完成功能开发。面向对象包含三大主要特性:
封装
继承
多态

1. 封装

在这里插入图片描述

@property是Python中一个非常有用的装饰器,它允许我们将一个方
法转换为类的属性。通过使用@property,我们可以像访问普通
属性一样访问方法的结果,从而提高代码的简洁性和可维护性。

1. 基本概念
@property装饰器用于将一个方法定义为属性。这意味着当我们访问该属性时,
实际上是在调用该方法,并返回其结果。@property的主要目的是为了提供一种
更直观的方式来访问和修改对象的状态。
# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 10_装饰器.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/9 9:06@property装饰器用于将一个方法定义为属性。这意味着当我们访问该属性时,实际上是在调用该方法,并返回其结果。@property的主要目的是为了提供一种更直观的方式来访问和修改对象的状态。
"""
class MyClass:name=Noneage=Nonedef __init__(self):self._value = 0@propertydef value(self):return self._value@value.setterdef value(self, new_value):### 能写好多代码self._value = new_value@value.deleterdef value(self):del self._value
#创建对象
myclass = MyClass()
#print(myclass.value)
# myclass.name 访问的是属性myclass.value = 100 #它方法的是方法
# 当前的value是方法
print(myclass.value)"""@property  装饰器将value方法定义为一个只读的属性@value.setter 装饰器允许我们 为value属性设置值@value.deleter   装饰器允许我们 删除value属性@property 使用场景:数据验证:在设置属性值得时候进行验证动态计算: 计算属性值不是存储它  [流式计算]封装复杂的逻辑 :隐藏复杂的计算或者逻辑 ,使其看起来像一个简单的属性访问 # 作业 : 使用 该装饰器  控制年龄的范围  年龄超过100 岁 默认年龄设置为  22岁!"""
总结:
1. 封装的概念是指?
将现实世界事物在类中描述为属性和方法,即为封装。
2. 什么是私有成员?为什么需要私有成员?
现实事物有部分属性和行为是不公开对使用者开放的。同样在类中描述属性和方法的时候也需要达到这个要求,就需要定义私有成员了
3. 如何定义私有成员?
成员变量和成员方法的命名均以_ _作为开头即可
4. 私有成员的访问限制?
类对象无法访问私有成员
类中的其它成员可以访问私有成员

2. 继承

在这里插入图片描述

父类: 基类

子类 :派生类

# -*- coding: utf-8 -*-
"""
@Project : 01-python-learn
@File    : 11_python中继承.py
@IDE     : PyCharm
@Author  : 刘庆东
@Date    : 2025/9/9 9:27
水果案例水果 定义为父类苹果  橘子定义为子类人类案例Person 定义为父类说话的行为  称为方法学生、老师  定义为子类老师说学生说"""class Fruit:#水果类  基类[父类]"""水果类 这是父类"""color="绿色" #定义类的属性#父类中收获的方法def harvest(self,color):print("水果是"+color+"的!")print("水果已经收获了....")print("水果原来是:"+Fruit.color+"的!")#定义派生类
class Apple(Fruit):# Apple 是子类 也叫派生类  Fruit 是Apple的父类 也叫基类"""苹果类 这是子类 它的父类 是 水果"""color = "红色"def __init__(self):print("我是苹果")#苹果类中没有重写 父类的收获的方法#定义派生类
class Orange(Fruit):# Orange 是子类 也叫派生类  Fruit 是Apple的父类 也叫基类"""橘子类 这是子类 它的父类 是 水果"""color = "橙色"def __init__(self):print("我是橘子")# 重写父类收获的方法def harvest(self,color):print("橘子是"+color+"的!")print("橘子已经收获了....")print("橘子原来是:"+self.color+"的!")#创建子类橘子的对象
orange = Orange()
#调用橘子中收获的方法
orange.harvest(orange.color)print("-------------------------------------------")
apple = Apple()  # 创建类的实例(苹果)
#苹果类中没有定义 收获的方法
apple.harvest(apple.color)  # 调用基类的harvest()方法"""
继承的语法是:
class ClassName(baseclasslist):'''类的帮助信息''' statement 参数说明:ClassName: 用于指定类名 baseclasslist : 用于指定要继承的父类【基类】,可以有多个,类名之间用逗号分隔我们之前没有写 默认继承自 Object Object是所有的类的根类 [金字塔的顶端]statement: 类体  主要有 类变量  方法  属性 等定义语句组成 """

3. 多态

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/921641.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/921641.shtml
英文地址,请注明出处:http://en.pswp.cn/news/921641.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BP-Adaboost模型

BP-Adaboost模型是一种将BP神经网络作为弱分类器的集成学习框架,通过AdaBoost算法动态调整样本权重和模型权重,显著提升预测精度和泛化能力。一、模型架构与工作原理 1. 基础框架 弱分类器单元:采用单隐藏层BP神经网络(结构示例&a…

k230 +canMV+ LVGL控件 仿手表表盘触摸屏滚动、选中后弹窗效果完整示例程序

现在智能手表用的越来越多,其交互方式比较有特点,现在k230开发板上,基于LVGL(Light and Versatile Graphics Library)编写一个嵌入式GUI应用程序,使用LVGL配合触摸屏实现模仿智能手表的表盘滚动效果,实际效果如下: 程序使用LVGL图形库和MediaManager程序,创建带有触摸…

使用Vue.js和WebSocket打造实时库存仪表盘

大家好!今天我将分享一个简单却强大的实时库存仪表盘项目,基于Vue.js和WebSocket技术。这个项目适合初学者学习前端实时数据处理,也能为你的技术博客或作品集增添亮点!通过这个教程,你将学会如何使用WebSocket实现实时…

leecode100——接雨水

题目 双指针 思路1 使用参数存储从左往右(从右往左同理)遍历时的最高的柱子, 然后移动左右的指针,每次移动左右指针中偏向小的, 如果当前指针指的柱子小于最高的柱子,就会存在接到水。 思路2 把水看作柱子&…

复古胶片风格街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色教程复古胶片风格街拍人像 Lightroom 调色,通过模拟经典胶片相机的色彩科学,为现代数码照片注入怀旧韵味。这种调色手法注重低饱和度色彩、柔和的高光过渡和丰富的暗部细节,配合适度的颗粒感,营造出时光沉淀的质感。特别适合街…

Linux的gpio子系统

GPIO其实也是某个pin的功能之一。上一小节讲解了 pinctrl 子系统,pinctrl 子系统重点是设置 PIN(有的 SOC 叫做 PAD)的复用和电气属性,如果 pinctrl 子系统将一个 PIN 复用为 GPIO 的话,那么接下来就要用到 gpio 子系统了。gpio 子系统顾名思…

VC++ CPU指令集检测工具实现原理

📈 VC CPU指令集检测工具实现原理 例图:🧠 1. 核心原理:CPUID指令 // 使用CPUID指令获取CPU信息 int cpuInfo[4] { -1 }; __cpuid(cpuInfo, 0); // 调用CPUID指令 int nIds cpuInfo[0]; // 获取最大标准功能号CPUID指令工作流程…

大模型微调理论、实战:LLaMA-Factory、Unsloth

概述 微调,Fine-Tuning,简称FT,可理解为对LLM的定制,目的是增强专业领域知识,并优化特定任务的性能。通过在特定数据集上微调一个预训练模型,可实现: 更新知识:引入新的领域专属信…

【LCA 树上倍增】P9245 [蓝桥杯 2023 省 B] 景区导游|普及+

本文涉及知识点 树上倍增 P9245 [蓝桥杯 2023 省 B] 景区导游 题目描述 某景区一共有 NNN 个景点,编号 111 到 NNN。景点之间共有 N−1N-1N−1 条双向的摆渡车线路相连,形成一棵树状结构。在景点之间往返只能通过这些摆渡车进行,需要花费…

基于Python+Streamlit的旅游数据分析与预测系统:从数据可视化到机器学习预测的完整实现

🏞️ 基于PythonStreamlit的旅游数据分析与预测系统:从数据可视化到机器学习预测的完整实现 📝 前言 在大数据时代,旅游行业的数据分析变得越来越重要。如何从海量的旅游数据中挖掘有价值的信息,并进行准确的销量预测&…

飞算JavaAI全链路实战:智能构建高可用电商系统核心架构

飞算JavaAI全链路实战:智能构建高可用电商系统核心架构 前言:AI编程新时代的电商系统开发范式变革 在当今数字经济时代,电商系统作为企业数字化转型的核心载体,其复杂度和技术要求与日俱增。一个完整的电商系统不仅需要处理商品、…

论文精读(五):面向链接预测的知识图谱表示学习方法综述

笔者链接:扑克中的黑桃A 专栏链接:论文精读 本文关键词:知识图谱; 表示学习; 链接预测; 多元关系; 超关系 引 诸位技术同仁: 本系列将系统精读的方式,深入剖析计算机科学顶级期刊/会议论文,聚焦前沿突破…

Roo Code之自定义指令(Custom Instructions),规则(Rules)

在Roo Code 中,Custom Instructions 可以通过Instructions 设定和Rules 规则文件实现。什么是Custom Instructions? 自定义指令(Custom Instructions)定义了超出Roo基本角色定义范围的具体行为、偏好和约束。示例包括编码风格、文档标准、测试要求和工作…

9/8我是ai大师

一、变量定义部分(理解程序的 "记忆")c运行/* USER CODE BEGIN PV */ static uint8_t last_button_state 1; // 初始为高电平(未按下) static uint8_t device_mode 0; // 设备模式:0LD1, 1LD3, 2蜂鸣器, 3…

前沿重器[74] | 淘宝RecGPT:大模型推荐框架,打破信息茧房

前沿重器栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经…

jenkins加docker 部署项目

jenkins加docker 部署springboot项目 1项目结构Dockerfile 内容 FROM openjdk:8-jdk-alpine ARG JAR_FILEtarget/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar","--server.port9090"]在A服务器上启动jenkins …

提示词工程(Prompt Engineering)的崛起——为什么“会写Prompt”成了新技能?

🎀【开场 猫猫狐狐的对话】🐾猫猫扒着屏幕:“喵?咱写的这句 Prompt 怎么又跑偏啦?明明只是想让它帮忙写一段 Python 代码,它偏要给咱写论文摘要……” 🦊狐狐眯着眼,声音带点冷意&a…

供应链管理系统入门知识:是什么,功能模块,怎么定制开发?

如果你是刚接触企业运营的新手,听到 “供应链管理系统” 可能会觉得有点复杂。其实,它就像一个 “智能管家”,帮企业把从买材料到卖产品的一系列流程管得明明白白。今天就用大白话给你讲清楚这个系统到底是什么,以及它能帮上什么忙…

kotlin - 平板分屏,左右拖动,2个Activity计算宽度,使用ActivityOptions、Rect(三)

kotlin - 平板分屏,左右拖动,2个Activity计算宽度,使用ActivityOptions、Rect使用平板,api33才支持,可以左右拖动,分屏第一个页面 , 思考:分屏后,对整个app的影响&#x…

v0.29.3 敏感词性能优化之繁简体转换 opencc4j 优化

敏感词性能调优系列 v0.29.0 敏感词性能优化提升 14 倍全过程 v0.29.1 敏感词性能优化之内部类迭代器内部类 v0.29.2 敏感词性能优化之基本类型拆箱、装箱的进一步优化的尝试 v0.29.3 敏感词性能优化之繁简体转换 opencc4j 优化 背景 opencc4j opencc4j 中,因…