检查Python对象属性类

时间:2014-04-13 20:06:38

标签: python class validation attributes

我有一个Quad类用于检查实例是否是几种不同形式的Quadrilateral,其参数是(sideAB,sideDA,angleA)。角度a假定为度数。

如果属性是数字,我如何能够执行检查来验证对象?我知道我可以在课外执行异常,但这是我应该在课堂上最好地处理验证的方式吗?

对不起,如果这看起来有点基础,我对python相对较新。我是这个网站的新手,所以如果您对更合适的帖子内容有任何建议,请告诉我。

1 个答案:

答案 0 :(得分:0)

你可以做一些明确的事情,如:

class Quad(object):

    def __init__(sideAB, sideDA, angle):
        if not isinstance(sideAB, (int, float)):
            raise ValueError("All arguments must be numeric.")
        ...

或者,更加宽容和pythonic:

class Quad(object):

    def __init__(sideAB, sideDA, angle):
        self.sideAB = float(sideAB)
        ...

如果它不能成为ValueError,那么会为您筹集float,并处理例如q = Quad("1", "2", "3")没有大惊小怪。

相关问题