如何在Python中将类对象附加到列表

时间:2018-11-26 18:32:49

标签: python list

我正在尝试将类对象附加到列表中,该类来自其他文件

这是来自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'

1 个答案:

答案 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)。您需要实例化您的类,然后再尝试将其用作实例!