广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python要self的理由
  • 437
分享到

Python要self的理由

理由Python 2023-01-31 01:01:10 437人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

python要self的理由Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发)。Python的类的方法的这个特别的参数指代

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()

输出:Python,why self?

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

如果把self去掉的话,


class Python:
def selfDemo():
print 'Python,why self?'
p = Python()
p.selfDemo()

这样就报错了:TypeError: selfDemo() takes no arguments (1 given)

扩展

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

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



首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗,不要搞另类,大家会不明白的。下例中将self改为myname一样没有错误:


1 class Person:
2           def _init_(myname,name):
3                    myname.name=name
4           def sayhello(myname):
5                    print 'My name is:',myname.name
6 p=Person('Bill')
7 print p


self指的是类实例对象本身(注意:不是类本身)。


1 class Person:
2          def _init_(self,name):
3                   self.name=name
4          def sayhello(self):
5                   print 'My name is:',self.name
6 p=Person('Bill')
7 print p


在上述例子中,self指向Person的实例p。 为什么不是指向类本身呢,如下例子:


1 class Person:
2          def _init_(self,name):
3                   self.name=name
4          def sayhello(self):
5                   print 'My name is:',self.name
6 p=Person('Bill')
7 p1 = Person('Apple')
8 print p


--结束END--

本文标题: Python要self的理由

本文链接: https://www.lsjlt.com/news/184994.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python要self的理由
    Python要self的理由Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发)。Python的类的方法的这个特别的参数指代...
    99+
    2023-01-31
    理由 Python
  • python类中为什么要self?
    在python中创建类时必须有一个self参数, eg: >>> class miss: ...               def mi(self): ...             print "i like pyt...
    99+
    2023-01-31
    类中 python
  • Python为什么要保留显式的self
    Bruce 的提议 Bruce 知道,我们需要一种方法来区分对实例变量的引用和对其它变量的引用,因此他建议将“self”设为关键字。考虑一种典型的类,它有一个...
    99+
    2022-11-11
  • 如何理解Python中的self
    这篇文章主要介绍了如何理解Python中的self的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何理解Python中的self文章都会有所收获,下面我们一起来看看吧。对于初学Python的同学来说,在clas...
    99+
    2023-07-05
  • python函数为什么要加入self
    python函数中需要加self的理由python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 ,且Python类的方法指代的是对象本身,它需要用se...
    99+
    2022-10-23
  • python中self的原理是什么
    本篇文章为大家展示了python中self的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(...
    99+
    2023-06-14
  • python的cls,self,clas
    python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种,一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问;二是在de...
    99+
    2023-01-31
    python cls clas
  • python中的this——self
        #0、python中的self相当于this ,    #1、如果调用成员变量必须使用self,    #2、self不一定叫self可以改变它的名称。    #3、在成员函数中使用self.name变量相当于声明了一个成员变量 ...
    99+
    2023-01-31
    python
  • 全面理解Python中self的用法
    刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数?你看完这篇文章后就会明白所有的疑问。 self代表类的实例,而非类。 实例来...
    99+
    2022-06-04
    Python
  • 关于对python中self的深入理解
    假设有一个类nameMain(), 如最下面代码 类 : 一个抽象的模板。可以理解为抽象设计图类名:类的名字。查看/实现方式 :print(nameMain)或者print(self...
    99+
    2022-11-11
  • 关于python中的self,ins ,
    关于python中的self,ins,cls的解释参考下面两篇博文首先是self: (参考http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html)self比较好理解,s...
    99+
    2023-01-31
    python ins
  • Python里的Self是什么
    这篇文章主要介绍“Python里的Self是什么”,在日常操作中,相信很多人在Python里的Self是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python里的Self是什么”的疑惑有所帮助!接下来...
    99+
    2023-07-06
  • 一文带你全面理解Python中的self
    目录Python类的内置属性在class里面,是不是必须使用self对于初学Python的同学来说,在class中经常看到self。那么,到底self是个啥? 这得从面向对象说起。P...
    99+
    2023-03-03
    Python self用法 Python self
  • Python中的self怎么使用
    在介绍Python的self用法之前,先来介绍下Python中的类和实例我们知道,面向对象最重要的概念就是类(class)和实例(instance),类是抽象的模板,比如学生这个抽象的事物,可以用一个Student类来表示。而实例是根据类创...
    99+
    2023-05-17
    Python self
  • 聊聊Python里面的Self,是谁啊?
    大家学Python面向对象的时候,总会遇到一个让人难以理解的存在:self。这个self到底是谁啊,为什么每个类实例方法都有一个参数self,它到底有什么作用呢「先下结论:类实例化后,self即代表着实例(对象)本身。」想要理解self有个...
    99+
    2023-05-15
    Python self
  • Python类中self的含义是什么
    在Python中,`self`是一个惯用的参数名,用于表示对象自身。它在类的方法中作为第一个参数传递,用于访问该对象的属性和方法。当...
    99+
    2023-10-12
    Python
  • Python类中__init__() 和self的详细解析
    目录1、Python中self的含义2、Python中为何要有self3、首先来看一下__init__()和self对象4、如果没有在__init__中初始化对应的实例变量的话,导致...
    99+
    2022-12-30
    python类中的__init__ python__init__用法 Python类 self
  • Python中self的四个秘密分别是什么
    这篇文章给大家介绍Python中self的四个秘密分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。self的谜团毫无疑问,几乎每一门Python课程都有一个关于(class)类...
    99+
    2022-10-19
  • ERP需要MES的5个理由是什么
    ERP需要MES的5个理由是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  在许多这些MES项目中,其中一个触发因素是安装新的企业资源规划(ERP)系统或替换现有的系...
    99+
    2023-06-05
  • python不得不学的理由!
    Python 不仅仅是一个设计优秀的程序语言,它能够完成现实中的各种任务,包括开发者们日复一日所做的事情。作为编制其它组件、实现独立程序的工具,它通常应用于各种领域。实际上,作为一种通用语言,Python 的应用角色几乎是无限的:你可以在任...
    99+
    2023-01-30
    不学 理由 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作