我应该给类引用指定\uuu init \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?

2024-04-25 23:39:18 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个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()

Tags: to对象方法self属性objectinitdef
2条回答

我强烈建议您设置这些via属性,这些属性验证您传递的值,以确保它们是Point的子类。你知道吗

将它们设置为None。这是唯一明智的选择。或者,如果总是调用构造函数中为其赋值的方法,则不要赋值。你知道吗

把它们放在课堂上会很奇怪。此外,除了使代码更难调试之外,它也没有任何价值——想象一下,由于某种原因,方法中的赋值没有发生(可能因为笨拙而意外地赋值给self.c,而不是self.x)。然后你将不会得到一个很好的异常,显示值是None,但有一些奇怪的东西,或者根据代码根本没有异常!你知道吗

相关问题 更多 >

    热门问题