Python中关于‘self’的种种用法笔记
方法中的 self
参数
- 给对象增加属性
先来看个例子:
class Cat:def eat(self):print("%s 爱吃鱼" % self.name)
在 Python 中,要 给对象设置属性,非常的容易,但是不推荐使用
tom.name = "Tom"
lazy_cat.name = "大懒猫"
因为:对象属性的封装应该封装在类的内部 只需要在 类的外部的代码 中直接通过 .
设置一个属性即可
注意:这种方式虽然简单,但是不推荐使用!
使用 self
在方法内部输出每一只猫的名字 由 哪一个对象 调用的方法,方法内的 self
就是 哪一个对象的引用 在类封装的方法内部,self
就表示 当前调用方法的对象自己 调用方法时,程序员不需要传递 self
参数 在方法内部 可以通过 self.
访问对象的属性 也可以通过 self.
调用其他的对象方法
改造代码如下:
class Cat:def eat(self):print("%s 爱吃鱼" % self.name)tom = Cat()
# tom.eat()
# 给对象临时增加属性
tom.name = "Tom"
# 现在调用就没问题
tom.eat()
lazy_cat = Cat()
lazy_cat.name = "大懒猫"
lazy_cat.eat()
运行结果如下:
“”"
Tom 爱吃鱼
大懒猫 爱吃鱼
“”"
在 类的外部,通过 变量名. 访问对象的 属性和方法
在 类封装的方法中,通过 self.
访问对象的 属性和方法
在类的外部给对象增加属性
将案例代码进行调整,先调用方法 再设置属性,观察一下执行效果
python tom = Cat()
tom.drink()
tom.eat()
tom.name = "Tom"
print(tom)# 程序执行报错如下:
# AttributeError: 'Cat' object has no attribute 'name' 属性错误:'Cat' 对象没有 'name' 属性
提示
- 在日常开发中,不推荐在 类的外部 给对象增加属性
- 如果在运行时,没有找到属性,程序会报错
- 对象应该包含有哪些属性,应该 封装在类的内部
- 未完待续
转载于:https://www.cnblogs.com/onefine/p/10499391.html
Python中关于‘self’的种种用法笔记相关推荐
- Python学习笔记(一)1.Python中end=和sep=的用法与区别。
一.Python中end=和sep=的用法与区别: python中常用到的end=和sep=两种参数用法相似,一个是python输出结尾,一个是python输出分割. end: 默认是换行,表示两个字 ...
- python中iloc和loc的用法
python中iloc和loc的用法 loc:标签索引 iloc:位置索引 近期学习到了loc和iloc的切片用法,发现用法实在是很多,所以用一个简单的例子进行总结用法,期间也借鉴了大量笔记,如果有错 ...
- python的raw_ input是什么意思-对python中raw_input()和input()的用法详解
最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...
- python中str和input_对python中raw_input()和input()的用法详解
最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...
- Python中try...except...else的用法
最近在学习Python,于是总结一些基础的语法,以供自己复习查看,同时提供给有需要的朋友们.. 本篇总结了Python中try...except...else的用法. try: <语句& ...
- python3 isinstance用法_对python中assert、isinstance的用法详解
1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...
- python join_详解Python中的join()函数的用法
函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符) ...
- python数组用sum求和_对python中array.sum(axis=?)的用法介绍
根据代码中运行的结果来看,主要由以下几种: 1. sum():将array中每个元素相加的结果 2. axis对应的是维度的相加. 比如: 1.axis=0时,对饮搞得是第一个维度元素的相加, [[0 ...
- Python中的基本函数及其常用用法简析
分享Python中的基本函数及其常用用法简析,首先关于函数的解释函数是为了达到某种目的而采取的行为,函数是可重复使用的,用来实现某个单一功能或者功能片段的代码块,简单来说就是由一系列的程序语句组成的程 ...
最新文章
- python使用matplotlib可视化线图(line plot)、使用invert_yaxis函数将Y轴坐标反序(invert the y axis in matplotlib)
- java filehelper_Spring 发送邮件 使用File指定附件
- php表单数量,php – 解析具有未知数量字段的表单
- 关于CMMI级别阶梯式前进路线图的对话
- c++17(20)-双向循环链表(不依赖具体数据)
- 一步一步学Silverlight 2系列(4):鼠标事件处理
- Java Spring源代码学习之How is class annotation evaluated by Spring framework
- 今天拿到了同事给我买的《java与模式》
- Spark踩坑记——数据库(Hbase+Mysql)转
- 电脑长时间睡眠会自动关机吗_长期对着电脑皮肤会变黑吗?经常对电脑如何保护皮肤?...
- python 字符串匹配like_python中关于正则表达式一
- RHEL6入门系列之十七,打包与压缩
- ubuntu vscode 配置字体_配置vscode终端字体,vscode终端字体
- Phase2 Day16 数据库SQL
- 公用方法:得到汉字的首字母(大写) 方案3
- 2021 编程语言排行榜
- winxp网络找不到计算机,WinXP系统电脑打开WiFi搜索不到无线网络的解决方法
- bin文件读写 - C/C++
- 武汉大学计算机 韩立,文澜学术系列讲座 第135期 武汉大学经济与管理学院韩立宁老师:“Financial Network and Industry Connectedness”...
- mac 更新系统时间