能量场 发表于 2021-8-29 11:37:36

新手求助


class T:
        def a(self):
                b = 1
c = T()
c.a()
print(b)


为什么会报错?NameError: name 'b' is not defined{:5_94:} {:5_99:}
请问报错的原因及如何修改,本人新手,指教越详细越好,请多多包涵{:5_110:}

临时号 发表于 2021-8-29 11:37:37

class T:
        def a(self):
                global b
                b = 1
c = T()
c.a()
print(b)

可以用global将b声明为全局变量

大马强 发表于 2021-8-29 12:16:57

你这个 b 是声明在类中a方法的临时变量,是引用不到的

wp231957 发表于 2021-8-29 12:18:39

b没有定义,多明显的提示
以及多么不应该出现的代码,怎么会想到直接调用b

大马强 发表于 2021-8-29 12:19:08

class T:
    def a(self):
      self.b = 1


A = T()
A.a()
print(A.b)

大马强 发表于 2021-8-29 12:22:55

要为其绑定实例化对象

唯有无奈 发表于 2021-8-30 08:05:59

这报错不就提示了说b没有定义吗{:7_140:}
页: [1]
查看完整版本: 新手求助