【python第7课 实例,类】
文章目录
- 一、实例
- 1.1实例的变量
- 1.2实例方法
- 1.3 构造方法
- 1.4析构函数
- 1.4预置实例属性:
- 二,类
- 1.1类变量
- 1.2类方法
- 1.3静态方法
- 1.4类属性的增删改查
一、实例
1.1实例的变量
使用示例
class dog:def __init__(self,k,c,a):self.kinds = kself.color = cself.age = a
d1 = dog("京巴","白色",1)
d2 = dog("金毛","黄色",2)
print(d1.kinds)
print(d1.color)##z执行结果
京巴
白色
1.2实例方法
语法 :
class 类名(继承列表):
def 实例方法名(self,形参参数1,形参参数2……):
语句……
说明:
实例方法的实质是函数,是定义在类内的函数
实例方式属于类的属性
实例方法的第一个参数代表调用这个实例方法的对象,一般命名为“self”
实例方法如果没有return语句,则返回None
实例方法调用示例
class dog:def __init__(self,k,c,a):self.kinds = kself.color = cself.age = adef say(self):print("汪汪")
d1 = dog("京巴","白色",1)#用对象来调用
d1.say()
#用类来调用
dog.say(d1)#执行结果
汪汪
汪汪
1.3 构造方法
作用:
创建对象时初始化实例对象
语法:
def __init__(self, [形参参数列表]):
语句……
说明:
构造方法名必须为 __init__ 不可改变
构造方法会在实例创建时自动调用,且将实例自身通过第一个参数self传入__init__方法
1.4析构函数
语句:
def __del__(self):
pass
说明:
析构方法会在对象销毁时被自动调用
python不建议在析构语句中做任何事情,因为该方法调用的时间难以确定
1.4预置实例属性:
说明
__dict__属性以字典的方式输出对象的所有属性,__class__属性可以的到对象类的名字,__doc__属性输出对象的类中的注释,__module__属性输出对象所在模块的名字
示例
class dog:def __init__(self,k,c,a):self.kinds = kself.color = cself.age = adef say(self):print("汪汪")
d1 = dog("京巴","白色",1)
print(d1.__class__)
print(d1.__dict__)
print(d1.__doc__)
print(d1.__module__)#输出
<class '__main__.dog'>
{'kinds': '京巴', 'color': '白色', 'age': 1}
None
__main__
二,类
1.1类变量
定义在类中的变量
可以通过以下访问
示例
class human:home = "地球"def __init__(self,name):self.name = name #只能通过实例对象访问
print(human.home) #通过类访问类变量
h1 = human("张三")
print(h1.home) #通过实例对象访问类变量#执行结果
地球
地球
在实例的对象中修改类变量只会修改实例对象自己类变量
示例
class human:home = "地球"def __init__(self,name):self.name = name #只能通过实例对象访问
h1 = human("张三")
h1.home = "火星"
print(h1.home) #通过实例对象访问类变量
print(human.home) #通过类访问类变量#执行结果
火星
地球
1.2类方法
类方法 @classmethod
说明:
类方法是只能访问类变量的方法
类方法的第一个参数是类的实例,约定为cls
类和实例对象都可以调用类方法
类方法不能访问实例变量
示例
class icbc:moneys = 1000@classmethoddef total_moneys(cls):print("总钱数为",cls.moneys)
icbc.total_moneys()
a = icbc()
a.total_moneys()#执行结果
总钱数为 1000
总钱数为 1000
1.3静态方法
静态方法@staticmethod
说明
静态方法是普通函数
静态方法定义在类的内部,只能凭借该类和实例调用
静态方法不能访问类变量和实例变量
示例
class a:@staticmethoddef myadd(a,b):return a+b
print(a.myadd(10,20))
b = a()
print(b.myadd(10,30))#执行结果
30
40
1.4类属性的增删改查
说明
getattr(obj, name, [default]) 获取对象属性
hasattr(obj, name) 查找这个属性
setattr(obj, name, value) 增加属性
delattr(obj, name) 删除这个属性
示例
class myclass:pass
a = myclass()
print(hasattr(a,"name")) #查找name属性
print(setattr(a,"name",100)) #增加name属性
print(hasattr(a,"name")) #查找name属性
print(getattr(a,"name")) #获取name属性的值
delattr(a,"name") #删除name属性
print(hasattr(a,"name"))#执行结果
False
None
True
100
False
相关文章:
【python第7课 实例,类】
文章目录 一、实例1.1实例的变量1.2实例方法1.3 构造方法1.4析构函数1.4预置实例属性: 二,类1.1类变量1.2类方法1.3静态方法1.4类属性的增删改查 一、实例 1.1实例的变量 使用示例 class dog:def __init__(self,k,c,a):self.kinds kself.color csel…...

RocketMQ源码解析(上)
一、ACL权限控制 应用场景: RocketMQ提供了针对队列、用户等不同维度的非常全面的权限管理机制。通常来说,RocketMQ作为一个内部服务,是不需要进行权限控制的,但是,如果要通过RocketMQ进行跨部门甚至跨公司的合作&…...

Webpack打包CSS文件,解决You may need an appropriate loader to handle this file type报错
在项目文件夹下创建webpack.config.js文件,该文件就是Webpack的配置文件 注意:该文件中遵循Node.js的代码格式规范 ,需要对导出配置文件中的内容 Webpack在默认情况下只能打包js文件,如果我们希望他能够打包其他类型的文件&#…...

轮换对称性
二重积分 普通对称性–D关于 y x yx yx对称: ∬ D f ( x , y ) d σ { 2 ∬ D 1 f ( x , y ) d σ f ( x , y ) f ( y , x ) 0 f ( x , y ) − f ( y , x ) \iint_{D}f(x,y)d\sigma\begin{cases} 2\iint_{D_1}f(x,y)d\sigma\ \ \ \ \ \ f(x,y)f(y,x) \\ 0 \ \…...

【MySQL基础】--- 约束
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、什么…...

ROS2 的行为树 — 第 1 部分:解锁高级机器人决策和控制
一、说明 在复杂而迷人的机器人世界中,行为树(BT)已成为决策过程中不可或缺的一部分。它们提供了一种结构化、模块化和高效的方法来对机器人的行为进行编程。BT起源于视频游戏行业,用于控制非玩家角色,他们在机器人领域…...
kafka事务的详解
一 kafka事务的机制 1.1 kafka的事务机制 通过事务机制,KAFKA 可以实现对多个 topic 的多个 partition 的原子性的写入,即处于同一个事务内的所有消息,不管最终需要落地到哪个 topic 的哪个 partition, 最终结果都是要么全部写成功…...
Flutter Fair逻辑动态化架构设计与实现
本文的核心内容包括: 数据逻辑处理布局中的逻辑处理Flutter类型数据处理一、数据逻辑处理 我们接触的每一个Flutter界面,大多由布局和逻辑相关的代码组成。如Flutter初始工程的Counting Demo的代码: class _MyHomePageState extends State<MyHomePage> {// 变量 int…...

【每日一题】74. 搜索二维矩阵
74. 搜索二维矩阵 - 力扣(LeetCode) 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返…...

软件测试进大厂,拿高薪,怎么做?看这里!
有些同学大学专业不对口,但有想进大厂想拿高薪心,只要你有想法,那就一定有实现的方法。 俗话说:“世间无难事,只怕有心人”。仔细思索一下,哪家大厂能缺软件测试这一重要职位。相对大学所学专业而言&#…...
【读书笔记】基于世界500强的高薪实战Kubernetes课程
第1章 课程简介&&自我介绍 1-1 自我介绍 1-2 课程大纲内容介绍 1-3 课程更新通知 第2章 K8s必备知识-Docker容器基础入门 2-1 课程介绍 2-2 docker容器介绍 2-3 docker优缺点 2-4 安装和配置docker 2-5 修改内核参数 2-6 配置镜像加速器 2-7 配置常用镜像加…...

【Java 基础篇】Java并发包详解
多线程编程是Java开发中一个重要的方面,它能够提高程序的性能和响应能力。然而,多线程编程也伴随着一系列的挑战,如线程安全、死锁、性能问题等。为了解决这些问题,Java提供了一套强大的并发包。本文将详细介绍Java并发包的各个组…...

MYSQL存储引擎基础知识介绍
下面重点介绍几种常用的存储引擎,并对比各个存储引擎之间的区别,以帮助读者理解 不同存储引擎的使用方式。 MyISAM MyISAM是 MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,其优势是访 问的速度快,对事务完整性没有要求或者以 SEL…...
vue学习之element-ui组件集成
1. element-ui 链接 https://element.eleme.cn/#/zh-CN 2. element-ui 安装 cnpm install element-ui3. 创建项目 https://blog.csdn.net/qq_36940806/article/details/132921688?spm=1001.2014.3001.5502 4. 引入element库 /src/main.js 引入 element-uiimport Vue from…...

如何通过百度SEO优化提升网站排名(掌握基础概念,实现有效优化)
随着互联网的发展,搜索引擎优化(SEO)成为了网站优化中不可或缺的一部分。在中国,百度搜索引擎占据着主导地位,因此掌握百度SEO概念和优化技巧对网站的排名和曝光非常重要。 百度SEO排名的6个有效方法: 首…...
Golang 字符串
目录 1. Golang 字符串1.1. 基础概念1.2. 字符串编码1.3. 遍历字符串1.4. 类型转换1.5. 总结1.6. String Concatenation (字符串连接)1.6.1. Using the operator1.6.2. Using the operator1.6.3. Using the Join method1.6.4. Using Sprintf method1.6.5. Using Go string Bu…...
python应用中使用了multiprocessing多进程,使用pyinstaller打包出来的程序可能产生多个窗口
问题现象 我用pyside(类似pyqt)开发了一个应用程序。直接使用pycharm运行,一切都正常。但当我使用pyinstaller将它打包之后,再去运运行,发现窗口总是产生多个。 问题分析 直接运行没有问题,那么问题肯定…...

数据结构与算法——13.队列的拓展
这篇文章主要讲一下双端队列,优先队列,阻塞队列等队列的拓展内容。 目录 1.队列拓展概述 2.双端队列的链表实现 3.双端队列的数组实现 4.优先队列无序数组实现 5.阻塞队列 6.总结 1.队列拓展概述 首先来看一张图,来大致了解一下他们的…...

机器学习入门教学——损失函数(交叉熵法)
1、前言 我们在训练神经网络时,最常用到的方法就是梯度下降法。在了解梯度下降法前,我们需要了解什么是损失(代价)函数。所谓求的梯度,就是损失函数的梯度。如果不知道什么是梯度下降的,可以看一下这篇文章:机器学习入…...

pytest一些常见的插件
Pytest拥有丰富的插件架构,超过800个以上的外部插件和活跃的社区,在PyPI项目中以“ pytest- *”为标识。 本篇将列举github标星超过两百的一些插件进行实战演示。 插件库地址:http://plugincompat.herokuapp.com/ 1、pytest-html࿱…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...