python面向对象三大特征之---封装,私有属性和私有方法,property功能; 继承,重写,object类;多态;类的深拷贝和浅拷贝

news2024/11/15 2:18:25

1.面向对象三大特征

在这里插入图片描述

封装

在这里插入图片描述
1.类属性的创建:
在这里插入图片描述
2.属性的访问:
在这里插入图片描述
私有属性和方法在类外访问的方法也有:不推荐

对象名._类名__私有方法()
对象名._类名__私有属性

3.property功能

在Python中,property 是一个内置的功能,它允许类的方法被当作属性来访问。这意着,你可以像访问数据属性一样访问这些方法的返回值,同时还可以在访问时执行一些逻辑(比如计算值、验证输入等),而不需要显式地调用方法。
@property下的函数调用只能访问属性,不可以更改值,.setter更改属性,注意.前边的是property函数名

property 装饰器或函数可以用来创建这样的属性。它接受一到四个参数:fget(获取值的函数)、fset(设置值的函数)、fdel(删除值的函数)和doc(文档字符串)。通常,至少需要 fget 参数。

class Circle:  
    def __init__(self, radius):  
        self._radius = radius  
  
    @property  
    def radius(self):  
        """获取圆的半径"""  
        return self._radius
       #用setter来更改属性的值
    
    @radius.setter  
    def radius(self, value):  
        """设置圆的半径,确保值为正数"""  
        if value < 0:  
            raise ValueError("半径不能为负数")  
        self._radius = value  
# 使用  
c = Circle(5)  
print(c.radius) 
c.radius = 10    # 赋值,调用setter 

继承

python’中一个子类可以有多个父类
在这里插入图片描述
1.初始化变量

  • 对于只有一个父类的子类,通过super(). __ init__()调用已经被父类初始化的变量
    def __init__(self,name,age,stuno):
        super().__init__(name,age)
        self.stuno=stuno
  • 对于有几个父类的子类,通过 父类名字(). __ init__(self,)调用已经被父类初始化的变量
    def __init__(self,name,age,stuno,st):
        Father1().__init__(self,name,age)
        Father2().__init__(self,stuno)
        self.st=st

2.重写
若想在自己的方法中调用父类方法:super().父类方法()在重写方法时调用父类的方法

在这里插入图片描述

3.object类

在这里插入图片描述

多态

实现程序的可扩展性,方便遇到同名方法时候找到对应的类的方法
在这里插入图片描述

类的深拷贝和浅拷贝

在这里插入图片描述
在这里插入图片描述

①变量的赋值:
对象 com1=com这样

②浅拷贝和深拷贝
A shallow copy constructs a new compound object and then (to the extent possible) inserts the same objects into it that the original contains.
A deep copy constructs a new compound object and then, recursively, inserts copies into it of the objects found in the original

import copy
com1=copy.copy(com)
import copy
x = copy. copy(y) # make a shallow copy of y 
x = copy. deepcopy(y) # make a deep copy of y

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jar包在linux无法直接获取resources文件夹下的文件

windows下&#xff0c;通过hutool的FileUtil.file()就可以获取到文件&#xff0c;通过MailUtil.send()将邮件带附件的方式成功&#xff0c;携带附件发邮件。 linux下部署&#xff0c;截图中的FileUtil.file()是拿不到文件的&#xff0c;报IOException while sending message&a…

「团结引擎1.2.0」正式上线!功能全面升级

「团结引擎 1.2.0」来啦&#xff0c;继上次大版本更新又过了三个月&#xff0c;这段时间我们的研发团队一直在收集用户反馈&#xff0c;更新引擎功能。 本次技术更新的内容&#xff0c;涵盖了微信小游戏、团结引擎车机版、OpenHarmony、Audio、Virtual Geometry、Open Euler/A…

开发食堂采购系统源码:优化供应链管理APP的技术路径

当下&#xff0c;开发一个食堂采购系统源码&#xff0c;并将其集成到供应链管理APP中&#xff0c;成为了优化供应链管理的关键路径之一。 一、食堂采购系统的需求分析 食堂采购系统是食堂日常运营中不可或缺的工具&#xff0c;其主要功能包括采购需求管理、供应商管理、订单管…

《中国数据库前世今生》——历史的深度与未来的展望

在探索科技与历史的交织中&#xff0c;我有幸观看了《中国数据库前世今生》这部纪录片。影片开头它不仅是一段技术演进的回顾&#xff0c;更是中国IT领域从跟随到引领的壮丽史诗。后续深刻研读了专家们的深刻讨论&#xff0c;通过这部纪录片&#xff0c;我深刻感受到了数据库技…

PMP–知识卡片--沟通模型

沟通过程中&#xff0c;发送方想把自己的想法传递给接收方&#xff0c;需要先对想法进行编码&#xff0c;将其变成语言或文字&#xff0c;再选择传递的方式&#xff0c;过程中会受到噪声的影响。这里的噪声是广义的&#xff0c;包括所有影响信息传递效果的因素&#xff0c;如杂…

《Ubuntu22.04环境下的ROS2学习笔记2》

一、在ROS2环境下创建功能包 如果您已经完成了上一小节的内容&#xff0c;那么接下来您一定渴望自己创建一个功能包来实现相应的功能。在ROS1中&#xff0c;您创建的功能包可以既写C/C&#xff0c;又写python&#xff0c;但ROS2中不允许用户这么做&#xff0c;您的C/C和python代…

UniApp的神器-开启前端开发的全新篇章

本文介绍了DIYGW UniApp可视化工具作为一款低代码开发平台的特点和优势。该工具采用拖拽式设计和模块化开发&#xff0c;能够快速转化想法为可运行应用&#xff0c;并支持多种平台部署。它具有所见即所得的设计体验、丰富的组件库、前后台通信模块和跨平台兼容性等特点。使用该…

netsat -ano 详解

netsat -ano会输出一大堆端口&#xff0c;为什么nmap扫描出来的却只有两个 因为我们的服务器或者工作站有开启防火墙&#xff0c;过滤了nmap的流量&#xff0c;导致nmap扫描不到一些端口&#xff0c;再加上我们的开放端口有一些是只有本地才能访问的 怎么看哪些端口只有本地能…

基于Pytorch深度学习图像处理基础流程框架(以ResNetGenerator为例)

文章目录 - 模型搭建1. 搭建ResNetGenerator2. 网络实例化3.加载预训练模型权重文件4. 神经网络设置为评估模式 预测处理1. 定义图片的预处理方法2. 导入图片3. 预处理图片4. 调用模型5. 输出结果 - 模型搭建 1. 搭建ResNetGenerator import torch import torch.nn as nnclas…

go 调用C语言函数或者库

1.查看cgo是否开启 go env | grep CGO_ENABLED CGO_ENABLED1 2. go程序中加入 import "C" 通过 import “C” 语句启用 CGO 特性后&#xff0c;CGO 会将上一行代码所处注释块的内容视为 C 代码块 单行注释使用// 多行注释使用/* */ 3. go 与C 类型转换 在g…

HSL模型和HSB模型,和懒人配色的Color Hunt

色彩不仅仅是视觉上的享受&#xff0c;它在数据可视化中也扮演着关键角色。通过合理运用色彩模型&#xff0c;我们可以使数据更具可读性和解释性。在这篇文章将探讨HSL&#xff08;Hue, Saturation, Lightness&#xff09;和HSB&#xff08;Hue, Saturation, Brightness&#x…

【机器学习】深度学习实践

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 引言一、深度学习基础二、图像分类示例三、拓展思考结语 引言 在当今人工智能的浪潮中&#xff0c;深度学习作为其核心驱动力之一&#xff0c;正以前所未有的速度改变着我们的世界。从图像识别、语音…

c语言第18天笔记

构造类型 结构体类型 结构体数组 案例&#xff1a; 需求&#xff1a;对候选人得票的统计程序。设有3个候选人&#xff0c;每次输入一个得票的候选人的名字&#xff0c;要求最后输出 各人得票结果。 ​ /** * 结构体数组案例&#xff1a;对候选人得票的统计程序。设有3个候…

主机组装笔记

参考资源&#xff1a;B站【装机教程】全网最好的装机教程&#xff0c;没有之一&#xff0c;仅供探讨学习 9大部件一览 其中得到固态和机械&#xff0c;是硬盘&#xff0c;存储空间&#xff0c;可以只选固态 CPU&#xff0c;主要有 AMD 和 Intel (AMD&#xff0c;基板的背面布…

力扣 58. 最后一个单词的长度

题目描述 思路 下意识想到先以空格作为分割符对字符串进行分割得到若干个子字符串&#xff0c;然后用字符串长度计算函数计算最后一个子字符串的长度。 该思路代码如下&#xff1a; class Solution:def lengthOfLastWord(self, s: str) -> int:s_array s.split()last_le…

全新在线客服系统源码(pc+h5+uniapp+公众号小程序+抖音)附搭建接入教程

全新在线客服系统源码介绍 一、系统概述与优势 本系统是一款基于PHP的开源在线客服系统&#xff0c;支持PC端、移动端(小程序)、H5页面以及Uniapp多端接入。系统利用网络技术和人工智能技术&#xff0c;实现用户与客服人员的即时聊天沟通&#xff0c;有效提升服务质量和用户满意…

Python+Selenium+Pytest+POM自动化测试框架封装详解

1、测试框架简介 1&#xff09;测试框架的优点 代码复用率高&#xff0c;如果不使用框架的话&#xff0c;代码会显得很冗余。可以组装日志、报告、邮件等一些高级功能。提高元素等数据的可维护性&#xff0c;元素发生变化时&#xff0c;只需要更新一下配置文件。使用更灵活的…

透明加密软件排行榜前十名(2024年10大好用的透明加密软件推荐)

在当今数字化的时代&#xff0c;数据的安全性和保密性已经成为了企业和个人最为关注的问题之一。随着信息技术的飞速发展&#xff0c;各种数据泄露事件层出不穷&#xff0c;给企业和个人带来了巨大的损失。在这样的背景下&#xff0c;透明加密软件应运而生&#xff0c;成为了保…

商家转账到零钱申请必过教程2024

在微信作为重要的营销场景的当下&#xff0c;微信支付的商家转账到零钱功能对于众多企业来说具有重要意义。要顺利开通该接口&#xff0c;需要注意以下几个要点。 首先&#xff0c;需要公司主体资质。申请主体必须是公司&#xff0c;个体工商户暂无法申请。同时&#xff0c;要确…

8.15成都市计量院面试问答

&#x1f416; Q&#xff1a;为什么要选择计量检定测试院&#xff1f; A&#xff1a;市计量院具备多项资质认定和计量认证项目&#xff0c;选择成都市计量检定测试院&#xff0c;意味着接触前沿技术&#xff0c;积累丰富经验&#xff0c;服务社会公益&#xff0c;参与创新研发&…