【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࿱…...
基于51单片机多路DTH11温湿度检测控制系统
一、系统方案 1、本设计采用51单片机作为主控器。 2、DHT11采集温度度,支持3路温度度,液晶1602显示。 3、按键设置报警阀值。 4、系统声光报警。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 //初始化LCD*********…...
宝塔重装注意事项
欢迎关注我的公众号:夜说猫,让一个贫穷的程序员不靠打代码也能吃饭~ 前言 宝塔8.0版本,宝塔卸载重装,或者重装Linux系统后重新安装宝塔也适用。 不能上来直接就执行安装宝塔脚本,除非之前没有安装过宝塔。 步骤 1、…...
【MySQL】 MySQL的增删改查(进阶)--壹
文章目录 🛫数据库约束🌴约束类型🎋NOT NULL约束🎍UNIQUE:唯一约束🌳DEFAULT:默认值约束🎄PRIMARY KEY:主键约束🍀FOREIGN KEY:外键约束…...
Map<K,V>的使用和List学习
Map Map是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。对于静态类型的查找来说,一般直接遍历或者用二分查找【不会对区间进行插入和删除操作】 而在现实生活中的查找比如: 根据姓名查询考试成绩通讯录…...
Flask实现Web服务调用Python程序
Flask实现Web服务调用Python程序_flask调用python程序_小白白程序员的博客-CSDN博客 【小沐学Python】Python实现Web服务器(Flask入门)_python flask web开发_爱看书的小沐的博客-CSDN博客...
步步为营,如何将GOlang引用库的安全漏洞修干净
文章目录 引场景构建第一步、直接引用的第三方库升级修复策略1.确认是否为直接引用的第三方库2.找到需要升级的版本是否为release版本 第二步、间接引用的第三方库升级修复策略那么问题来了,我们这么间接引用库的对应的直接引用库是哪个呢? (…...
as-if-serial与happens-before原则详解
文章目录 前言详解解决多线程下的问题 Happens-before原则总结as-if-serial语义happens-before的例子 前言 "as-if-serial"原则是Java内存模型中的一个重要概念。该规则规定:不管怎么重排序(编译期间的重排序,指令级并行的重排序&…...
基于Yolov8的工业小目标缺陷检测(2):动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点 | ICCV2023
目录 1.工业油污数据集介绍 1.1 小目标定义 1.2 难点 1.3 工业缺陷检测算法介绍 1.3.1 YOLOv8...
ARM64汇编基础
ARM64汇编基础 主要内容 到目前为止,大部分的移动设备都是64位的arm架构,一直想抽个时间系统学习下,这个周末就专门来学习下。毕竟两天的时间,也只是简单的入门了解下,为后续工作和学习打下基础。 本次学习的主要内容…...
Nodejs 第十六章(ffmpeg)
FFmpeg 是一个开源的跨平台多媒体处理工具,可以用于处理音频、视频和多媒体流。它提供了一组强大的命令行工具和库,可以进行视频转码、视频剪辑、音频提取、音视频合并、流媒体传输等操作。 FFmpeg 的主要功能和特性: 格式转换:…...
网站开发需要考虑哪些方面/seo人才网
json-server获取服务器数据只能用get方式,而express支持post方式获取数据 express 一般项目中均安装,若未安装 npm install express --savebuild文件夹webpack.dev.config.js添加设置 //支持post mock数据 var express require(express); //启动expr…...
做律师咨询网站/山东疫情最新情况
简介 自.NET 4.5发布已经过了差不多1年了。但是随着最近微软大多数的发布,与.NET开发者交流的问题显示,开发者仅知道一到两个特性,其他的特性仅仅停留在MSDN并以简单的文档形式存在着。 比如说,当你问一个.NET开发者.NET框架内核中…...
十堰市公司网站建设/刷僵尸粉网站推广
2019独角兽企业重金招聘Python工程师标准>>> LAMP架构介绍 Linux Apache(httpd) MySQL PHPPHP网站(Google、淘宝、百度)三个角色可以在一台机器、也可以分开(httpd和PHP要在一起)httpd、PHP、MySQL工作关系图 PHP去…...
毕业设计代做网站推荐/杭州seo软件
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼package testOfProject;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class ThreadView extends JFrame implements ActionListener {JPanel jp1;JButton jb1, jb2;public static void main(String[] a…...
企业头像logo设计/网站自然排名优化
一、GPT定时器简介 以前的延时函数采用空指令来实现,延时不准确且浪费cpu性能。当修改了6ull的主频以后,采用空指令延时函数就不准了。 因此需要一个高精度的延时函数,并且不随着主频的变化而改变。 stm32 使用 SYSTICK 这个硬件定时器来实现…...
做网站接私单/seox
def get_tags_list(input_file):#统计NER数据集中标签的种类with open(input_file, r, encodingutf-8) as f:tags_list []lines f.readlines()seq_sum 0word_sum 0for line in lines:#对每一行if line.isspace() False:for i,word in enumerate(line):if word.isspace()Tr…...