Итак, у меня есть TerrainManager
класс, который будет хранить несколько TerrainStructure
объектов в списке. У меня есть метод, в классе TerrainStructure
под названием generate_pillar_points()
он используется для установки значений x, y
в значениях TerrainStructure
атрибутов.Должен ли я присваивать атрибутам __init__ ссылку на класс или что-то вроде None?
Должен ли я назначать атрибуты для ссылки на класс? Я думаю, что это может быть хорошим подходом просто потому, что я могу посмотреть на атрибут и посмотреть, что это будет объект Point
. Или я должен установить значения по умолчанию не будет None или 0, а затем, когда я звоню generate_pillar_points()
установить эти атрибуты, чтобы быть экземпляром Point
класса
Я задаю этот вопрос с этим в виду:
a = Cls # reference to Cls
a = Cls() # instance of Cls
Вот код, я уверен, что это будет понятнее, что я хочу спросить.
class Point(object):
def __init__(self, x, y):
self.x, self.y = x, y
class TerrainStructure(object):
def __init__(self):
# what default values should this points have?
self.top_left, self.top_right = Point, Point
self.bottom_left, self.bottom_right = Point, Point
# picks 4 random points between fixed ranges
# and assigns them to the above attributes
self.generate_pillar_points()
Вы можете просто не устанавливать их вообще, и позволить 'generate_pillar_points' устанавливать их в первый раз. – BrenBarn