我正在尝试将类对象附加到列表中,该类来自其他文件
这是来自main.py的源代码:
environmentVector = []
environment.environment1 = environment.environment(100, 100, 32, 32)
environmentVector.append(environment.environment1)
并继承了environment.py中的类:
class environment():
def __init__(self, x, y, width, height):
self.x = x
self.y = y
self.x1 = x - 16
self.x2 = x + 16
self.y1 = y - 16
self.y2 = y + 16
此代码引发错误提示
AttributeError: module 'environment' has no attribute 'environmentVector'
答案 0 :(得分:2)
您有两个问题。首先,当您这样做时:
import environment
将environment
设置为包含您的environment
类的命名空间,而不是类本身。这与某些其他OOP语言(例如Java)不同。
# My sample environment.py
class Environment(object):
pass
foo = "bar"
# my sample main.py
import environment
# environment.Environment is the class
# environment.Environment() is an instance of that class.
# environment.foo is "bar"
第一个问题是您在使用environment
的地方使用environment.environment
。 第二个问题是您正在使用environment
,而实际上应该 使用environment.environment(some_x, some_y, some_width, some_height)
。您需要实例化您的类,然后再尝试将其用作实例!