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(类和对象)相关推荐

  1. Python学习笔记 (类与对象)

    Python学习笔记 (类与对象) 1.类与对象 面向对象编程语言类: 一个模板, (人类)-是一个抽象的, 没有实体的对象: (eg: 张三, 李四) 属性: (表示这类东西的特征, 眼睛, 嘴巴, ...

  2. 紫影龙的编程日记 —— 认识类和对象

    今天是我学习 Visual C++ 开发技术的第二天,我主要学习的是类和对象.在学习类和对象之前,首先需要了解两个概念. 面向过程程序设计 ( Procedural Programming ) 方法是 ...

  3. python创建person类用printinfo方法_Python学习期刊Day11类和对象(2),日记,与,下

    今天是2020年2月20日,晴,6~14℃ 一.继承 继承是一种创建新类的方式.新建类将获得原有类的所有属性和方法.原有的类称为父类(超类),新建的类称为子类. Python中继承的方式如下: ''' ...

  4. 菜菜的Python学习日记 | Python类实验代码分享

    系列索引:菜菜的Python学习日记 | Python从入门到入土详解 Python类实验代码分享 编写程序,实现以下功能. (1)创建员工类Employee,属性有姓名name.能力值ability ...

  5. 蓝桥直通车学习日记12.13

    蓝桥直通车学习日记(12.13) 添加注释的方法 添加注释的方法有两种 单行注释 多行注释 // 这是一个单行注释 /*这是一个多行注释*/ 现代模式, "use script" ...

  6. Java学习笔记_类和对象

    ·类:是一组相关属性和行为的集合,可以看成是一类事务的模板,使用事物的属性特征和行为特征来描述该类事物. ·属性:该事物的状态信息 ·行为:就是该事物能够做什么 ·对象:一类事物的具体体现,对象是类的 ...

  7. python学习day2:类与对象

    类与对象 一.内置函数 1.int方法 (1)def__add__(self, y):       #两数相加 """ x.__add__(y) <==> x ...

  8. Head First Java学习笔记(2):类与对象

    类 1.类是定义同一类所有对象的变量和方法的蓝图或原型. 2.实例变量的值由类的每个实例提供.当创建类的实例时,就创建了这种类型的一个对象,然后系统为类定义的实例变量分配内存.然后可以调用对象的实例方 ...

  9. java 由接口构造对象_Java学习笔记04——类和对象|抽象和接口|构造方法与继承...

    六.Java类 1.  Java中用关键字class来创建类. 2.  类中属性和方法称为类的成员;类的声明和方法要在同一个文件内,不同于C++. 3.  类的定义: [] class [extend ...

  10. C++学习日记12——设计模式

    学习视频链接 黑马程序员2017C++设计模式(已完结)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KW411t7FV?p=11&spm_i ...

最新文章

  1. SQL应用中级指南 Part4:(数据字典)
  2. xmind修改默认配置
  3. springboot-web开发(请求映射原理)
  4. jdbc连接mysql的配置文件_如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码)...
  5. jQuery实现checkBox全选全取消
  6. react 脚手架 立即可以写业务 react + react-router-dom + less + axios + antd
  7. POJ1007 UVA612 UVALive5414 ZOJ1188 HDU1379 Bailian4086 DNA Sorting【排序+逆序数】
  8. hmcl手机版_hmcl启动器整合包安卓版下载-我的世界hmcl启动器安卓版v1.17.10最新版_新绿资源网...
  9. 几个代码画出漂亮的词云图,python最简单的词云图教程(建议收藏)
  10. glide 压缩图拍呢_Glide-图片的压缩
  11. MATLAB ttest和ttest2的区别
  12. 计算机光电与智能专业就业方向,光电信息科学与工程就业方向 可以做什么工作...
  13. VSCode自定义网络背景皮肤
  14. CSMA/CD与CSMA/CA的区别
  15. html div 同行居中,CSS:多个DIV在同一行居中显示的一种实现方法
  16. 计算机组成原理 总线与微命令实验
  17. 利用percona-toolkit 工具来检测mysql 主从数据库同步以及实现同步
  18. 我的世界java骷髅马_我的世界中国版骷髅马怎么获得 骷髅马召唤驯服指令
  19. python 微信群男女比例分析,区域分析,柱状图显示
  20. 手游外挂入侵(三)外挂接口服务提供

热门文章

  1. phpcms 会员头像h5上传_PHPCMS 在任意页面调取会员头像
  2. 使用科大讯飞SDK实现语音功能
  3. java抽奖系统的设计参考文献,抽奖系统的设计与实现论文范文论文
  4. Hibernate写代码流程小结
  5. 央国企的企业并购重组信息能在塔米狗上找到吗?
  6. 随興8作者雨落下無痕
  7. 笔记本电脑启动无法打开计算机,笔记本电脑开机没反应(详细教程教您怎么解决)...
  8. Ruby ERB注入反序列化
  9. 2021-04-29【已解决】The server cannot or will not process the request due to something that is perceived
  10. 金蝶K3--生产领料单--更新销售订单编号