首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python变量访问

Python变量访问
EN

Stack Overflow用户
提问于 2016-01-03 06:57:55
回答 4查看 71关注 0票数 0
代码语言:javascript
复制
class A:
    def __init__(self):
        self.i = 0
    def demo(self):
        self.a=1

class B(A):
    def __init__(self, j = 0):
        super().__init__()
        self.j = j
        print(self.i)
        self.demo()
    def demo(self):
        print(self.a)

def main():
    b = B()
    print(b.i)
    print(b.j)
main()

为什么我不能访问self。b类中的a会以self作为变量的前缀。将使它成为一个实例变量,谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-03 07:14:47

当为这两个类包括一个demo方法时,最近定义的一个隐藏了其他类。由于您在定义B之后定义了A,但在调用A中的任何方法之前,demo将尝试访问从未定义过的变量。您应该在A中调用A(可能在__init__中),或者将B中的demo更改为惟一的名称,这将允许您访问这两种方法(可能是最好的方法,因为它们做不同的事情,并且希望同时使用这两种方法)。

票数 4
EN

Stack Overflow用户

发布于 2016-01-03 07:11:51

因为您在demo上覆盖了B class方法。

如果要访问self.a,请将其添加到A类的__init__方法或调用父级demo方法,如下所示:

代码语言:javascript
复制
   def demo(self):
       super().demo()
       print(self.a)
票数 1
EN

Stack Overflow用户

发布于 2016-01-03 07:08:15

因为实例变量b不是在__init__ of A中启动的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34574129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档