掌握Python的X篇_37_类的实例化、类方法

上篇我们已经学习了python中的类,并且学习到可以通过class关键字定义类,而类的最基本特性就是它是一个名称空间,本篇将会学习类的实例化。

文章目录

  • 1. 类的实例化
    • 1.1__init__函数
    • 1.2 实例化流程
  • 2. 类方法与成员

1. 类的实例化

上篇中新定义的类,不仅可以作为名称空间使用,实际上还可以像函数那样调用

In [1]: class Dog:...:     x = 5...:     def fun1(arg1,arg2):...:         print(arg1,arg2)...:...: if __name__ == "__main__":...:     Dog.fun1("brothers", "666")...:
brothers 666In [2]: Dog() #实例化对象
Out[2]: <__main__.Dog at 0x213762e82b0>

以上,调用Dog()的过程,我们称作类的实例化,了解类的实例化,要先了解类和对象的关系。

简单而言,类就想是一个“模具”,而”对象”是由模具生产的各个具体的“东西"

比如,汽车厂的生产线上,有车模具,根据车的模具,可以制作出很多具体的车。
以上,模具就是”类”,具体的车,就是依照”类”生成的对象

只不过,以上的Dog类内部没有任何东西,我们需要结合一个特殊的__int__函数,才能够使得对象的实例化有意义。

1.1__init__函数

我们进一步丰富Dog类,通过定义’init’方法:

In [3]: class Dog:...:     def __init__(self,arg_name,arg_age):...:         self.name = arg_name...:         self.age = arg_age...:...: if __name__ == "__main__":...:     dog1 = Dog("旺财",5)...:     dog2 = Dog("小强",6)...:In [4]: dog1
Out[4]: <__main__.Dog at 0x21376553670>In [5]: dog2
Out[5]: <__main__.Dog at 0x21376553ee0>In [6]: dog1.name
Out[6]: '旺财'In [7]: dog2.name
Out[7]: '小强'

以上代码展示了,我们使用Dog类,实例化得到了具体的2个object(“旺财”,“小强”)

1.2 实例化流程

实际上,当我们调用’Dog’时,内部会发生以下几个事情:

  • python会创造一个空白的“object”
  • python会自动调用’init’方法,并且把以上的空白object,当作第一个参数’self’,传递给’init
  • 因为我们的’init’中包含了’self.xx = yy’这类代码,因此就完成了初始化

2. 类方法与成员

类作为特殊的名称空间,使得类中定义的函数就变得比较特殊。因此,我们以后将类中定义的函数,称为方法(method).
之所以特殊对待,是因为类方法的调用过程比较特殊。

class Dog:def __init__(self,arg_name,arg_age):self.name = arg_nameself.age = arg_agedef introduce(self):print("我是",self.name,"年龄",self.age)if __name__ == "__main__":dog1 = Dog("旺财",5)dog2 = Dog("小强",6)dog1.introduce() #等价于dog1.introduce(dog1)dog2.introduce()

可以看出,类的方法调用语法:

实例化对象.<方法名>()

之所以我们没有显示传递"self"对应的实参,是因为python其实会偷偷将.之前的实例化对象,作为self传递。

3. 学习视频地址:类的实例化、类方法

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

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

相关文章

二十二、策略模式

目录 1、项目需求2、传统方案解决鸭子问题的分析和代码实现3、传统方式实现存在的问题分析和解决方案4、策略模式基本介绍5、使用策略模式解决鸭子问题6、策略模式的注意事项和细节7、策略模式的使用场景 以具体项目来演示为什么需要策略模式&#xff0c;策略模式的优点&#x…

贝锐蒲公英:快速搭建连锁门店监控体系,赋能企业高效管理

随着国民生活水平的提高和零售场景的变革&#xff0c;消费者对于餐饮类目的消费支出不断增加&#xff0c;线下社区生鲜商超作为下沉市场最主要的消费场景之一&#xff0c;蕴藏着巨大价值机会。 对于线下连锁生鲜超市而言&#xff0c;连锁门店多、员工多&#xff0c;门店管理时会…

ubuntu磁盘管理

show partition information 挂载设备在这 显示文件系统信息 build file system mkfs -t ext4 /dev/nvme0n1p4命令作用&#xff1a;将/dev/nvme0n1p4 格式化为 ext4 建立交换分区 mkswap -c -v1 /dev/nvme0n1p4 102400-c&#xff1a;check -v1&#xff1a;新版交换分区 -v0&…

安装PaddleDetection-2.6.0版本-笔记

安装PaddleDetection-2.6.0版本-笔记 一、第一步先激活环境 conda activate base conda activate base安装完paddleDetection后要关闭conda激活环境 conda deactivate conda deactivate二、安装PaddleDetection2.6.0版本 #pip install PaddleDet2.6.0 #切换版本可安装pip i…

gitblit windows部署

1.官网下载 往死慢&#xff0c;我是从百度找的1.9.1&#xff0c;几乎就是最新版 http://www.gitblit.com/ 2.解压 下载下来是一个zip压缩包&#xff0c;直接解压即可 3.配置 3.1.配置资源库路径 找到data文件下的gitblit.properties文件&#xff0c;用Notepad打开 **注意路…

详解编译过程(编译+链接)

翻译环境&#xff1a; 编译&#xff08;编译器&#xff09;&#xff1a; 1.预编译&#xff08;预处理&#xff09;&#xff1a; 最终生成test.i文件 【命令】&#xff1a;gcc test.c -E -O test.i 【包含过程】&#xff1a; 1.头文件的包含 2.注释的删除 3.#define定义…

小程序具体开发

window 导航栏 属性名类型默认值作用navigationBarTitleText string字字符串导航栏标题内容navigationBarBackgroundColorHexcolor#000000设置导航栏背景颜色&#xff08;比如荧黄色 #ffa&#xff09;navigationBarTextStylestringwhite设置导航栏标题的颜色&#xff08;仅含有…

通过将信号频谱与噪声频谱进行比较,自动检测适当的带通滤波器转折频率研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【数据结构与算法】十大经典排序算法-堆排序

&#x1f31f;个人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知识导航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ⚡如有问题&#xff0c;欢迎指正&#…

用库造一个list的轮子 【C++】

文章目录 list的模拟实现默认成员函数构造函数拷贝构造函数赋值运算符重载析构函数 迭代器迭代器为什么要存在&#xff1f;const_iteratorbegin和end inserterasepush_back && pop_backpush_front &&pop_frontswap 完整代码 list的模拟实现 默认成员函数 构造…

HCIP BGP小综合

BGP小综合 AS配置AS1AS2 中的小自治系统64512AS2 中的小自治系统64513AS3 测试 首先该实验分成三个AS&#xff0c;AS2里面有联邦&#xff0c;所以配置顺序 要先将IBGP通&#xff0c;然后配置AS1,AS3和联邦 AS配置 AS1 R1 # bgp 1router-id 1.1.1.1peer 12.1.1.2 as-number …

二十二、责任链模式

目录 1、使用demo演示责任链模式2、传统方案解决oa系统审批3、传统方案解决oa系统审批存在的问题4、职责链模式基本介绍5、职责链模式原理类图6、职责链模式解决oa系统采购审批7、职责链模式的注意事项和细节8、职责链模式的实际使用场景举例 1、使用demo演示责任链模式 学校o…

数据库相关面试题

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 mysql怎么优化 : MySQL的优化可以从以下几个方面入手&#xff1a; 数据库设计优化&#xff1a;合理设计表结构&#xff0c;选择合适的数…

GitHub 如何部署写好的H5静态页面

感谢粉皮zu的私信&#xff0c;又有素材写笔记了。(●’◡’●) 刚好记录一下我示例代码的GitHub部署配置&#xff0c;以便于后期追加仓库。 效果 环境 gitwin 步骤 第一步 新建仓库 第二步 拉取代码 将仓库clone到本地 git clone 地址第三步 部署文件 新建.github\workflo…

vue-pc端elementui-统一修改问题-Dialog 对话框点击空白关闭问题-element-所有组件层级问题

前言 实际开发我们经常发现dialog弹出框默认点击遮罩层空白地方就会关闭-有属性可以关闭 但是经常会图方便-或者已经写完了&#xff0c;不想一个个写&#xff0c;可以在main.js进行统一关闭 当我们在页面进行复杂设计和层级关闭改变&#xff0c;会发现右上角的退出登录弹出款…

现代无人机技术

目录 1.发展 2.应用领域 3.对战争的影响 4.给人类带来的福利 5.给人类带来的坏处 1.发展 无人机的发展可以分为以下几个关键步骤&#xff1a; 1. 早期试验和研究&#xff1a;20世纪初&#xff0c;飞行器的概念开始出现&#xff0c;并进行了一些早期的试飞和实验。这些尝试包…

LeetCode150道面试经典题-- 有效的字母异位词(简单)

1.题目 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 2.示例 s"adasd" t"daads" 返回true s"addad" t &q…

常见设计模式

概念 设计模式是怎么解决问题的一种方案 常见的设计模式 单例模式 概念&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 应用&#xff1a;项目封装个websocket用于大屏&#xff0c;redux&#xff0c;vuex都应用了单例模式的思想&#xff1b…

文献阅读:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators

文献阅读&#xff1a;AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators 1. 文章简介2. 方法介绍3. 实验考察 1. 实验结果2. 消解实验3. Consistency & Stability 4. 结论 & 思考 文献链接&#xff1a;https://arxiv.org/abs/2303.16854 …

Golang设计模式

Golang设计模式 Golang设计模式简介Golang工厂设计模式Golang单例设计模式Golang抽象工厂设计模式Golang建造者模式 (Builder Pattern)Golang 原型模式(Prototype Pattern)Golang适配器模式Golang 桥接模式&#xff08;Bridge Pattern&#xff09;Golang装饰器模式(Decorator …