Как добавить объект класса в список в Python - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь добавить объект класса в список, класс из другого файла

, вот исходный код из 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 голосов
/ 26 ноября 2018

У тебя две проблемы.Прежде всего, когда вы делаете:

import environment

, который устанавливает environment в пространство имен, в котором содержит ваш environment класс, а не в сам класс.Это отличается от некоторых других языков ООП (например, 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.Проблема second заключается в том, что вы используете environment, когда вы должны на самом деле использовать environment.environment(some_x, some_y, some_width, some_height).Вам нужно создать экземпляр своего класса, прежде чем пытаться использовать его как экземпляр!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...