我现在才刚刚开始在类里面学习,我遇到了一些我不明白的事情。假设我有一节课...
class Area(object):
def __init__(self, name, items):
self.name = name
self.items = items
现在,如果我以这种方式启动一个 Area 实例:
impala = Area("Impala", ["shotgun", "salt"])
然后调用一个变量,比如:
print impala.items
它工作得很好。但是,如果我尝试以这种方式启动它:
class impala(Area):
def __init__(self):
self.name = "Impala"
self.items = ["shotgun", "salt"]
然后尝试做同样的事情却给我一个错误:“类型对象‘impala’没有属性‘items’”
有人可以告诉我在第二个示例中我做错了什么以及为什么会这样吗?
最佳答案
您正在为您的类和变量使用相同的名称。 impala
和 impala
,我假设 Python 正在访问类,而不是实例。
为避免这种情况,我建议关注 PEP-8对于你的变量名,在 CapWords
和局部变量 lowercase_with_underscores
中给出类名。当然,您在命名项目时也应该小心,不要在同一个命名空间中有两个同名的东西。
>>> class Area(object):
... def __init__(self, name, items):
... self.name = name
... self.items = items
...
>>> class Impala(Area):
... def __init__(self):
... self.name = "Impala"
... self.items = ["shotgun", "salt"]
...
>>> impala = Impala()
>>> impala.items
['shotgun', 'salt']
关于python - 在 Python 中调用实例变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10536825/