所以我有一个TerrainManager
类,它将在一个列表中存储几个TerrainStructure
对象。
我有一个方法,在TerrainStructure
类中称为generate_pillar_points()
,它用于将x, y
值设置为TerrainStructure
属性。你知道吗
我应该分配属性来引用类吗?我认为这可能是一个很好的方法,因为我可以查看属性并看到它将是一个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()
我强烈建议您设置这些via属性,这些属性验证您传递的值,以确保它们是Point的子类。你知道吗
将它们设置为
None
。这是唯一明智的选择。或者,如果总是调用构造函数中为其赋值的方法,则不要赋值。你知道吗把它们放在课堂上会很奇怪。此外,除了使代码更难调试之外,它也没有任何价值——想象一下,由于某种原因,方法中的赋值没有发生(可能因为笨拙而意外地赋值给
self.c
,而不是self.x
)。然后你将不会得到一个很好的异常,显示值是None,但有一些奇怪的东西,或者根据代码根本没有异常!你知道吗相关问题 更多 >
编程相关推荐