Python中类函数中self是什么
首先我们来看两组代码运行的结果
代码组一:
class C1:def func1():x=10print("func1的x:",x)def func2(self):x=20print("func2的x:",x)C1.func1()
C1.func2()
结果如下
代码组二:
class C1:def func1():x=10print("func1的x:",x)def func2(self):x=20print("func2的x:",x)C1.func1()
c1_obj=C1()
c1_obj.func2()
结果如下
为什么前一个报错后一个不报错?
因为后一个c1_obj=C1()其实是将C1类实例化了 形成了一个对象
就好比是:类是一个不能说话的机器猫(哆啦A梦),它有很多东西但是不能叫出它的名字就不能使用,实例化就相当于可以说话的机器猫,可以使用里面的东西。
所以 参数self就表示当前引用函数的对象(也就是自己,self只是一个形参,不是一定要self这个单词,你变成himself,herself也都可以),所以在后一个引用函数func2()时就首先将自己传给self了,而前一个因为没有实例化就不是对象,所以缺少一个参数
总结:self就是表示当前对象
追加
代码如下
结果如下
可以看出,同样一个实例中的变量是可以被实例中的不同函数调用的
Python中类函数中self是什么相关推荐
- python在函数中传入多个实参
python在函数中传入多个实参 def make_pizza(*toppings):print("-----------------")print(toppings)make_p ...
- python max函数中使用key
博客转移到个人站点:python max函数中使用key 代码: a = dict(((1,3),(0,-1),(3,21))) m = max(a, key=a.get) 为什么这返回与最大值对应的 ...
- python中的func函数_如何解释python func函数中的n?
Func函数第一次了解知道是学习闭包章节中的,而后,因为函数本身存在的意义涵盖很多知识点,所以经常使用,在调用的时候,看到一个问题,就是关于python func函数中的n是什么?大家有没有考虑过呢? ...
- python 不定参数_人生苦短,我学不会Python。——函数中不定长参数的写法
定义函数 我们可以定义一个实现自己想要的功能的函数.Python定义函数以def开头,定义函数基本格式如下: def 函数名 (参数列表):"函数_文档字符串"函数体 return ...
- 【问题】python open函数中的newline参数问题
python版本:2.7 起由:在csv的写入list,提示TypeError: 'newline' is an invalid keyword argument for this function. ...
- python自定义函数中return可以返回多个值_python函数return返回多个值
在函数中一旦使用return,那么函数就会停止往下执行!但是,我们有时候需要函数返回多个值,怎么实现呢?其实python的return可以返回多个值,而且Python 会自动将多个返回值封装成元组. ...
- python:函数中的可变参数
可变参数 在不确定参数个数的时候,我们可以使用可变参数 python中的可变参数有两种,在参数前加*或者** 基于元组的可变参数(*可变参数) *可变参数在函数中被组装成一个元组. # 在参数名前面的 ...
- python 从函数中返回函数
从函数中返回函数 其实并不需要在一个函数里去执行另一个函数,我们也可以将其作为输出返回出来: def hi(name="yasoob"):def greet():return &q ...
- python在一个函数中调用另一函数中的变量
也就是c语言中的全局变量 比如有这样一个函数 def _test_():global ab = 2a = b + 1c = a + 1return c 在这里我们需要的是变量c的值,但是如果在条始中, ...
最新文章
- linux安装中文环境,[Linux]Ubuntu 7.04 中文环境的安装
- 数据蒋堂 | DB与NoSQL的访问性能
- 多线程和多进程的差别(小结)
- opencv、matplotlib、pillow和pytorch读取数据的通道顺序
- 计算机房英语视频,雅思听力场景词汇:计算机房场景
- 序列密码体制——密码学笔记(三)
- MAC电脑数据迁移方法
- 前后端分离系统使用Nginx代理https地址
- VTK:PolyData之PointNormals
- zcmu4959: ly的新闹钟(有个点容易忽略)
- applyBinding Observables
- LeetCode 1958. 检查操作是否合法(模拟)
- mysql添加timestamp有什么用_mysql中timestamp的使用
- 如何在CDH5上部署Dolphin Scheduler 1.3.1
- tastypie使用cache对list data无效问题
- EXCEL VBA入门(课堂随机点名系统)
- pwm占空比的c语言编程详解,灵动微MM32F003硬件最小系统 --- PWM占空比从0%到100%例程解析【18】...
- java实现即时通讯软件
- resource failed to call close
- SQL server日志清理