韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python基础教程 > 为什么Python必须在方法定义和调用中显式使用“self”?

为什么Python必须在方法定义和调用中显式使用“self”?

头像

 Ly

2020-06-24 16:40:362767浏览 · 0收藏 · 0评论

为什么Python必须在方法定义和调用中显示使用“self”?

这个想法借鉴了 Modula-3 语言。出于多种原因它被证明是非常有用的。

首先,更明显的显示出,使用的是方法或实例属性而不是局部变量。

阅读 self.x 或 self.meth() 可以清楚地表明,即使您不知道类的定义,也会使用实例变量或方法。

在 C++ 中,可以通过缺少局部变量声明来判断(假设全局变量很少见或容易识别) —— 但是在 Python 中没有局部变量声明,所以必须查找类定义才能确定。

一些 C++ 和 Java 编码标准要求实例属性具有 m_ 前缀,因此这种显式性在这些语言中仍然有用。

其次,这意味着如果要显式引用或从特定类调用该方法,不需要特殊语法。

在 C++ 中,如果你想使用在派生类中重写基类中的方法,你必须使用 :: 运算符 -- 在 Python 中你可以编写 baseclass.methodname(self, <argumentlist>)。

这对于 __init__() 方法非常有用,特别是在派生类方法想要扩展同名的基类方法,而必须以某种方式调用基类方法时。

最后,它解决了变量赋值的语法问题:

为了 Python 中的局部变量(根据定义!)在函数体中赋值的那些变量(并且没有明确声明为全局)赋值,就必须以某种方式告诉解释器一个赋值是为了分配一个实例变量而不是一个局部变量,它最好是通过语法实现的(出于效率原因)。

C++ 通过声明来做到这一点,但是 Python 没有声明,仅仅为了这个目的而引入它们会很可惜。

使用显式的 self.var 很好地解决了这个问题。类似地,对于使用实例变量,必须编写 self.var 意味着对方法内部的非限定名称的引用不必搜索实例的目录。

换句话说,局部变量和实例变量存在于两个不同的命名空间中,您需要告诉 Python 使用哪个命名空间。

更多Python问答知识,请关注Python视频教程!!

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

年轻的老师| 伦理《少妇的滋味》完整版| 校长办公室莹莹岔开腿呻吟AV | 朋友的未婚妻| 疯狂祖母免费观看高清版| 天堂草原高清在线观看电视剧| 大雷QQ弹弹跳舞| 在线观看免费高清视频大全追剧| 禁忌4大结局| 初中生兄弟互相导管立的经历| 小妈爱上继子免费观看电视剧| 皇空无痕MV免费视频观看| 下面也要好好疼爱第八集剧情梗概| 初次尝了销魂少妇邻居 | 《妻欲公与媳》免费看| 星空麻花MV高清| 嫂嫂让小叔子帮忙生孩子视频 | 妈妈装睡配合孩子阴阳调和| 打开网站免费进入| 胸吻| 下面的嘴可比上面的诚实| 栄仓彩| 坤坤寒入桃子里电视剧| 《女教师的味道3》在线观看| 宅男的天堂| 星空传媒天美传媒有限公司| 少妇洗澡被强公日日澡-百度| 粗大的内捧猛烈进出校花H漫画小| 怎么用一支笔把自己弄出粘液| 公憩止痒小说原著叫什么名字| 《法国少女3》高清| 男生困困进女生困困洞视频| 电子| 美国禁忌2在线观看电视剧| 男生困困进女生困困洞视频| 老公把舌头放进我B里揽拌| 多村野史| 免费直播入口在线观看| 姐姐片多多免费高清电视剧叶玉卿| 嗯~啊~叫..~呻..吟视..| 欧美黑粗大硬巴XXOO