Python中的“Self”对象是什么?

Python中的“Self”对象是什么?,第1张

概述我不理解以下 Python代码中的“Self”对象: >>> class Ancestor( object ): def __init__( self ): self.name = "Ancestor" def getName( self ): return self.name>>> class Base1( Ancestor ): d 我不理解以下 Python代码中的“Self”对象:

>>> class Ancestor( object ):    def __init__( self ):        self.name = "Ancestor"    def getname( self ):        return self.name>>> class Base1( Ancestor ):    def __init__( self ):        self.name = "Base1"        super( Base1,self ).__init__( )    def getname( self ):        return self.name>>> class Base2( Base1 ):    def __init__( self ):        self.name = "Base2"        super( Base2,self ).__init__( )    def getname( self ):        return self.name    def getB1name( self ):        return super( Base2,self ).getname( )>>> b2 = Base2( )>>> b2.getname( )'Ancestor'>>> b2.getB1name( )'Ancestor'

我无法理解结果.我期待b2.getname()的结果为“Base2”,b2.getB1name()的结果为“Base1”

解决方法 self指的是实例,而不是类.您只有一个实例,因此self的所有用法都指向同一个对象.在Base2 .__ init__中,您在此对象上设置了一个名称.然后调用super,它调用Base1 .__ init__,它在同一个对象上设置一个新名称,覆盖旧的名称.

如果你真的需要,你可以使用double-underscore attributes来实现你想要的.

总结

以上是内存溢出为你收集整理的Python中的“Self”对象是什么?全部内容,希望文章能够帮你解决Python中的“Self”对象是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1192893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存