• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中为什么要用self探讨

Python中为什么要用self探讨

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python中self,python self,python self参数,python函数中的self,python class self等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

接触Python以来,看到类里的函数要带个self参数,一直搞不懂啥麻子原因。晚上特别针对Python的self查了一下,理理。

Python要self的理由

Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发)。Python的类的方法的这个特别的参数指代的是对象本身,而按照Python的惯例,它用self来表示。(当然我们也可以用其他任何名称来代替,只是规范和标准在那建议我们一致使用self)

为何Python给self赋值而你不必给self赋值?

例子说明:创建了一个类MyClass,实例化MyClass得到了MyObject这个对象,然后调用这个对象的方法MyObject.method(arg1,arg2) ,这个过程中,Python会自动转为Myclass.mehod(MyObject,arg1,arg2)

这就是Python的self的原理了。即使你的类的方法不需要任何参数,但还是得给这个方法定义一个self参数,虽然我们在实例化调用的时候不用理会这个参数不用给它赋值。

实例:
class Python:
 def selfDemo(self):
  print 'Python,why self?'
p = Python()
p.selfDemo()
</div>
输出:Python,why self?

把p.selfDemo()带个参数如:p.selfDemo(p),得到同样的输出结果

如果把self去掉的话,
class Python:
 def selfDemo():
  print 'Python,why self?'
p = Python()
p.selfDemo()
</div>
这样就报错了:TypeError: selfDemo() takes no arguments (1 given)

扩展

self在Python里不是关键字。self代表当前对象的地址。self能避免非限定调用造成的全局变量。

在Python3之后不知道将self隐了没?感觉在Python类里的方法都要带个self这样有点死板

完

</div>

您可能想查找下面的文章:

  • python中self原理实例分析
  • python中self原理实例分析
  • Python中为什么要用self探讨
  • python类参数self使用示例
  • python类参数self使用示例
  • python 参数列表中的self 显式不等于冗余

相关文章

  • python实现将元祖转换成数组的方法
  • Python面向对象编程中关于类和方法的学习笔记
  • Python中遇到的小问题及解决方法汇总
  • python通过urllib2爬网页上种子下载示例
  • Python读写Redis数据库操作示例
  • 浅谈插入排序算法在Python程序中的实现及简单改进
  • 通过实例浅析Python对比C语言的编程思想差异
  • python根据文件大小打log日志
  • python获取文件版本信息、公司名和产品名的方法
  • python中PIL安装简单教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 使用基于Python的Tornado框架的HTTP客户端的教程
    • python杀死一个线程的方法
    • python网络编程之数据传输UDP实例分析
    • 总结用Pdb库调试Python的方式及常用的命令
    • Python中列表的一些基本操作知识汇总
    • 对于Python的Django框架部署的一些建议
    • urllib2自定义opener详解
    • 对于Python的Django框架使用的一些实用建议
    • 在Python中使用模块的教程
    • Python爬虫利用cookie实现模拟登陆实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有