实例方法在Python类中的是如何工作的

技术实例方法在Python类中的是如何工作的这篇文章给大家介绍实例方法在Python类中的是如何工作的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在OO(面向对象)编程中,类中的方法有多种形式:实

本文介绍了示例方法在Python类中的工作原理,内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。

在面向对象编程中,类中的方法有多种形式:实例方法、静态方法、类方法,甚至抽象方法。让我们讨论一下实例方法在Python中是如何工作的,稍后再讨论其他方法。

要首先定义最简单类:

班级人员:

def __init__(自我,姓名):

self.name=name

def eat(self):

print(self) # __main__。0x00处的人物对象

print(type(self))# class ‘ _ _ main _ _。“人”

Print(self.name’ is eating ‘)在这里,eat是一个实例方法,类似于普通函数。唯一的区别是必须指定参数本身。虽然名字可以任意命名,但习惯上的名字是self。什么是自我?它表示Person类的实例对象,就像在Java中一样。请看下面的测试代码。

p=人(“张三”)

P.eat()p和self指向同一个实例对象。

实例方法在Python类中的是如何工作的

所以可以直接通过类调用吗?不可能!

Person.eat()

错误: eat()缺少1 required位置参数:“self”那么为什么不需要通过实例P传递self参数来调用eat方法呢?这从函数和方法的区别开始。请看下面的代码:

打印(人.吃)

印刷

#输出

函数people . eat at0x 000001 bb 242 aae 8

绑定方法人。吃__主要的_ _。0x000001bb242b4b38处的person对象前者是函数,后者是方法。有人说函数在类外定义,方法在类内定义,说明这种说法是不完整的。那么它们的区别是什么呢?

首先,方法与对象关联,但函数不关联。p.eat是一个绑定了实例对象的方法。函数的所有参数都需要显式传递,而方法中的数据需要隐式传递。Person.eat是一个函数,参数应该显式传递,Person.eat(p)

方法与实例对象绑定,调用时不需要传递实例对象,直接调用p.eat()即可,自身参数Python会自动传递,重复会报错。

吃饭

Type: eat()接受1个位置参数,但给出了2个,因此,本质上,

P.eat()相当于Person.eat(p)。那么,比如方法,可以从语言设计的角度去掉self参数吗?Python之父吉多范罗苏姆写了一篇文章解释了这个问题,因为“显式比隐式好”

下面是实例方法在Python类中的工作原理。希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/86587.html

(0)

相关推荐

  • 美容医院排行,中国排名前十的美容院有哪些

    技术美容医院排行,中国排名前十的美容院有哪些御尚坊颜连锁美容院、梵玛西美容品牌、北京御蜂坊·蜂SPA美容、兰黛之谜、娇悦诗、百莲凯、克丽缇娜、雅致轩、蔓菲国际、美莱。美容行业是最有前景的八大行业之一美容医院排行,目前国内

    生活 2021年10月31日
  • 笑的种类,笑的学问和笑的种类有多少

    技术笑的种类,笑的学问和笑的种类有多少笑 心理学家们现在发现笑的种类:笑是人类与他人交流的最古老的方式之一,而在此之前,笑只被看作是人类幽默感的体现。人类笑是为了和别人团结一致或者嘲笑他们,要么用笑和别人调情。我们中的每

    生活 2021年10月20日
  • MySQL中SQL优化建议的示例分析

    技术MySQL中SQL优化建议的示例分析这期内容当中小编将会给大家带来有关MySQL中SQL优化建议的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天早上看到同事的一个优化需

    攻略 2021年11月29日
  • Confluence怎么扩展内存

    技术Confluence怎么扩展内存这篇文章主要介绍了Confluence怎么扩展内存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景:Confluen

    攻略 2021年11月17日
  • 常用两种mysql数据存储引擎(mysql的存储引擎与数据类型)

    技术MySQL数据库的存储引擎以及常用命令有哪些这篇文章主要介绍了MySQL数据库的存储引擎以及常用命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下

    攻略 2021年12月16日
  • 如何进行IMX6ULL开发板Linux_WIFI驱动实验

    技术如何进行IMX6ULL开发板Linux_WIFI驱动实验这期内容当中小编将会给大家带来有关如何进行IMX6ULL开发板Linux_WIFI驱动实验,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可

    攻略 2021年10月22日