学习日记12(类和对象)
python学习日记12(类和对象)
类和对象
类和对象是面向对象编程的两个核心概念。
类
类是一种抽象概念,是对一系列具有相同特征或行为的事物的统称。不可直接使用。
- 类中的特征具象化就是一个变量,称为类的属性
- 类中的行为具象化就是一个函数,称为类的方法
- 类本质就由一些列属性和方法构成的抽象概念
对象
对象是由类创建出来的具体实例,可直接进行使用。
对象由那个类创建,就拥有那个类中定义的属性和方法。
类和对象的关系
类是模板,对象根据类这个模板进行创建,所以先有类再有对象;
根据一个类可以创建多个对象;
类中定义的属性和方法,根据该类创建出来的对象就会拥有这些属性和方法;
不同对象的属性值会有所不同
面向对象基本语法
在python中,对象几乎是无处不在,可使用dir
内置函数来查看对象拥有的方法。
定义简单的类
class 类名:def 方法1(self,参数列表):passdef 方法2(self,参数列表):pass
根据类创建实例化对象
当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:
对象变量名 = 类名()
类中的self
self的概念
当对象调用方法,方法中的self.属性名
可以访问到这个对象的属性;通过self.方法名()
可以调用这个对象的方法。
可以理解为:self
代表类的实例,而非类。
class Test:def ppr(self):print(self)print(self.__class__)t = Test()
t.ppr()
执行结果:
<__main__.Test object at 0x0000021A1E47DC88>
<class '__main__.Test'>
在日常开发中,不推荐在类的外部直接给对象添加属性这种方式。对象应该具有哪些属性,我们应该封装在类的内部。
self
可以省略吗?
在Python解释器的内部,当我们调用t.ppr()时,实际上Python解释成Test.ppr(t),也就是把self替换成了类的实例。
class Test:def ppr():print(self)t = Test()
t.ppr()
执行结果:
Traceback (most recent call last):File "cl.py", line 6, in <module>t.ppr()
TypeError: ppr() takes 0 positional arguments but 1 was given
运行时提醒错误如下:ppr在定义时没有参数,但是我们运行时强行传了一个参数。
由于上面解释过了t.ppr()等同于Test.ppr(t),所以程序提醒我们多传了一个参数t。
这里实际上已经部分说明了self
在定义时不可以省略。
学习日记12(类和对象)相关推荐
- Python学习笔记 (类与对象)
Python学习笔记 (类与对象) 1.类与对象 面向对象编程语言类: 一个模板, (人类)-是一个抽象的, 没有实体的对象: (eg: 张三, 李四) 属性: (表示这类东西的特征, 眼睛, 嘴巴, ...
- 紫影龙的编程日记 —— 认识类和对象
今天是我学习 Visual C++ 开发技术的第二天,我主要学习的是类和对象.在学习类和对象之前,首先需要了解两个概念. 面向过程程序设计 ( Procedural Programming ) 方法是 ...
- python创建person类用printinfo方法_Python学习期刊Day11类和对象(2),日记,与,下
今天是2020年2月20日,晴,6~14℃ 一.继承 继承是一种创建新类的方式.新建类将获得原有类的所有属性和方法.原有的类称为父类(超类),新建的类称为子类. Python中继承的方式如下: ''' ...
- 菜菜的Python学习日记 | Python类实验代码分享
系列索引:菜菜的Python学习日记 | Python从入门到入土详解 Python类实验代码分享 编写程序,实现以下功能. (1)创建员工类Employee,属性有姓名name.能力值ability ...
- 蓝桥直通车学习日记12.13
蓝桥直通车学习日记(12.13) 添加注释的方法 添加注释的方法有两种 单行注释 多行注释 // 这是一个单行注释 /*这是一个多行注释*/ 现代模式, "use script" ...
- Java学习笔记_类和对象
·类:是一组相关属性和行为的集合,可以看成是一类事务的模板,使用事物的属性特征和行为特征来描述该类事物. ·属性:该事物的状态信息 ·行为:就是该事物能够做什么 ·对象:一类事物的具体体现,对象是类的 ...
- python学习day2:类与对象
类与对象 一.内置函数 1.int方法 (1)def__add__(self, y): #两数相加 """ x.__add__(y) <==> x ...
- Head First Java学习笔记(2):类与对象
类 1.类是定义同一类所有对象的变量和方法的蓝图或原型. 2.实例变量的值由类的每个实例提供.当创建类的实例时,就创建了这种类型的一个对象,然后系统为类定义的实例变量分配内存.然后可以调用对象的实例方 ...
- java 由接口构造对象_Java学习笔记04——类和对象|抽象和接口|构造方法与继承...
六.Java类 1. Java中用关键字class来创建类. 2. 类中属性和方法称为类的成员;类的声明和方法要在同一个文件内,不同于C++. 3. 类的定义: [] class [extend ...
- C++学习日记12——设计模式
学习视频链接 黑马程序员2017C++设计模式(已完结)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KW411t7FV?p=11&spm_i ...
最新文章
- SQL应用中级指南 Part4:(数据字典)
- xmind修改默认配置
- springboot-web开发(请求映射原理)
- jdbc连接mysql的配置文件_如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码)...
- jQuery实现checkBox全选全取消
- react 脚手架 立即可以写业务 react + react-router-dom + less + axios + antd
- POJ1007 UVA612 UVALive5414 ZOJ1188 HDU1379 Bailian4086 DNA Sorting【排序+逆序数】
- hmcl手机版_hmcl启动器整合包安卓版下载-我的世界hmcl启动器安卓版v1.17.10最新版_新绿资源网...
- 几个代码画出漂亮的词云图,python最简单的词云图教程(建议收藏)
- glide 压缩图拍呢_Glide-图片的压缩
- MATLAB ttest和ttest2的区别
- 计算机光电与智能专业就业方向,光电信息科学与工程就业方向 可以做什么工作...
- VSCode自定义网络背景皮肤
- CSMA/CD与CSMA/CA的区别
- html div 同行居中,CSS:多个DIV在同一行居中显示的一种实现方法
- 计算机组成原理 总线与微命令实验
- 利用percona-toolkit 工具来检测mysql 主从数据库同步以及实现同步
- 我的世界java骷髅马_我的世界中国版骷髅马怎么获得 骷髅马召唤驯服指令
- python 微信群男女比例分析,区域分析,柱状图显示
- 手游外挂入侵(三)外挂接口服务提供
热门文章
- phpcms 会员头像h5上传_PHPCMS 在任意页面调取会员头像
- 使用科大讯飞SDK实现语音功能
- java抽奖系统的设计参考文献,抽奖系统的设计与实现论文范文论文
- Hibernate写代码流程小结
- 央国企的企业并购重组信息能在塔米狗上找到吗?
- 随興8作者雨落下無痕
- 笔记本电脑启动无法打开计算机,笔记本电脑开机没反应(详细教程教您怎么解决)...
- Ruby ERB注入反序列化
- 2021-04-29【已解决】The server cannot or will not process the request due to something that is perceived
- 金蝶K3--生产领料单--更新销售订单编号