以下是博主认为的对self讲解得比较透彻又简洁明了的资料。






上面的资料把这个问题说得简单明了,大家认真看一遍相信就对self有个深入的了解了。
总结一下:
在Python为面向对象编程中,成员函数被调用时,无论函数有没有参数,都会有一个参数传给它,这个参数就是类本身,所以我们在定义成员函数时不管有没有参数传递,都要写上一个参数,这个参数代表类本身,通过这个参数我们可以引用类的成员变量和成员函数。
这个参数通常我们命名为self,当然你也可以写为其它的名字,但是为代码的标准和可读性,不建议这样操作。
所以,下面的代码:

class Staff:  # Staff为员工的意思bonus = 30000  # bonus为津贴、奖金的意思def salary(self):  # salary为工资的意思salary = 10000+self.bonusreturn salaryzhang_san = Staff()
zhang_san_salray = zhang_san.salary()

我们也可以写为:

class Staff:  # Staff为员工的意思bonus = 30000  # bonus为津贴、奖金的意思def salary(swh):  # salary为工资的意思salary = 10000+swh.bonusreturn salaryzhang_san = Staff()
zhang_san_salray = zhang_san.salary()

上面这个代码,一定可以正确运行,如下图所示:

Python面向对象编程(类编程)中self的含义详解(简单明了直击本质的解释)相关推荐

  1. USB CCID类协议中的APDU命令详解

    出处:http://blog.chinaunix.net/uid-29124653-id-4573075.html 原文地址:USB CCID类协议中的APDU命令详解 作者:jeffasdasd 最 ...

  2. python数据处理常用函数_pytorch中的自定义数据处理详解

    pytorch在数据中采用Dataset的数据保存方式,需要继承data.Dataset类,如果需要自己处理数据的话,需要实现两个基本方法. :.getitem:返回一条数据或者一个样本,obj[in ...

  3. python协程库_python中协程的详解(附示例)

    本篇文章给大家带来的内容是关于python中协程的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 协程,又称微线程,纤程.英文名Coroutine 协程看上去也是子程序 ...

  4. Python数据可视化——matplotlib.pyplot中plt的参数详解

    matplotlib.pyplot中plt的参数详解: #平滑折线的示例 # plt.plot(xnew, ynew, marker='.', markevery=markevery, ls='-', ...

  5. python 下划线变量_Python中的下划线详解

    这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线_的不同用法绝大部分(不全是)都是一种惯例约定. 一. 单个下划线直接做变量名(_) 主要有三种情况: 1. 解释器中 _ ...

  6. python默认参数举例_Python中的默认参数详解

    文章的主题 不要使用可变对象作为函数的默认参数例如 list,dict,因为def是一个可执行语句,只有def执行的时候才会计算默认默认参数的值,所以使用默认参数会造成函数执行的时候一直在使用同一个对 ...

  7. python 内部函数传参_python中函数传参详解

    一.参数传入规则 可变参数允许传入0个或任意个参数,在函数调用时自动组装成一个tuple: 关键字参数允许传入0个或任意个参数,在函数调用时自动组装成一个dict: 1. 传入可变参数: def ca ...

  8. python中长下划线_Python中的下划线详解

    这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线_的不同用法绝大部分(不全是)都是一种惯例约定. 一. 单个下划线直接做变量名(_) 主要有三种情况: 1. 解释器中 _ ...

  9. 【python实现网络爬虫(14)】python爬取酷狗中多类型音乐步骤详解(附全部源代码)

    目标网址:酷狗音乐-赤伶,页面如下 爬虫逻辑: [找到要获取特定音乐的url]>>>[找到该资源链接的url]>>>[封装获取音乐的函数]>>>[ ...

最新文章

  1. 惊艳!基于RNN的AI写词机竟能写出如此优秀的情诗!
  2. JavaScript检测之basevalidate.js
  3. HDU ACM 3177 Crixalis's Equipment
  4. redis 哨兵_docker里创建redis哨兵
  5. step4 . day3 目录访问函数
  6. Linkedin Camus的使用
  7. String与StringBuffer和StringBuilder的根本区别
  8. SpringMVC -- 梗概--源码--贰--RestFul收参(了解) @PathVariable
  9. 汇编笔记-DOSBox安装和使用
  10. python plt 批量修改全局样式
  11. 20190825 On Java8 第十三章 函数式编程
  12. 【django】短信验证码接口设计、互亿无线短信平台、后端逻辑、前端逻辑【16】
  13. oppo升级android,OPPO Real R807升级Android4.0教程
  14. 精通Java事务编程(3)-弱隔离级别之快照隔离和可重复读
  15. S3C2440之字符设备驱动详解
  16. python凯撒密码实验报告_凯撒密码的python实现
  17. 逆水寒 各个服务器位置,2019年3月28日首个“超级大服”服务器合并命名结果公告...
  18. 数字媒体技术作业题代码:matlab将三个灰度图片转化成一个彩色图片
  19. android 模拟电脑按键精灵,Android 模拟点击 按键精灵 ADB方案
  20. 关于树状图画法的分析

热门文章

  1. 中信信用卡核心升级应用数据服务系统
  2. php 小程序即时聊天,网易云IM小程序聊天室集成。PHP版SDK API使用示例
  3. ChatGPT自动写了个AI办公office word插件,低配copilot,程序员看了焦虑。
  4. el-select数据回显
  5. ElasticSearch 亿级数据检索深度优化
  6. 这一次,Google 终于对 Web 自动化下手了!
  7. 个人看法(设计思想)
  8. 最简单的方式讲明白numpy.reshape()函数
  9. 分布式技术原理与实战45讲--06 加餐1:如何准备一线互联网公司面试?
  10. pycharm连接数据库步骤