Python实现数组类时出现reportUndefinedVariable错误问题求助
问题原因
你遇到的报错属于Python类的实例属性访问规则问题:
- 你在
__init__方法中定义的self.arr是绑定在类实例上的属性,在类的其他实例方法中访问这类属性时,必须带上self前缀 - 你当前的
push方法中直接写arr.append(data)时,Python只会在当前push方法的局部作用域、全局作用域中查找名为arr的变量,不会自动匹配到实例属性self.arr,因此触发变量未定义的报错。
修复代码
class ArrayImplementation: def __init__(self): self.arr = [] def push(self, data): # 增加self前缀访问实例属性 self.arr.append(data)
额外提示
self代指当前类的实例对象本身,所有绑定到实例上的属性、方法都需要通过self.属性名/self.方法名()的形式访问,没有加self的变量只会被当做普通的局部/全局变量处理。
内容的提问来源于stack exchange,提问作者Senthilnathan
相关产品推荐
相关产品推荐

