Python属性,如何让它正常工作

时间:2012-04-16 14:23:39

标签: python django

我正在尝试在python上使用OO来创建一个很好的结构化类。我有一个对象,一个类的所有函数都将继承,但有子函数(getter和setter)可能需要一个或两个额外的参数。

如何让这种逻辑正常工作。

class XYZ(object):
    def __init__(self, cameraId):
        self.cameraId = cameraId;
        self.index = "";

    def get_test(self):
        print "Index: " + self.index + " CameraID: " + self.cameraId;
        return self.cameraId;

    def set_test(self, value, myValue=""):
        self.cameraId = value;
        self.index = myValue;
        return True;

    TEST_XYZ = property(get_test,set_test);

1 个答案:

答案 0 :(得分:2)

您可以使用tuple类型的值。请注意,您的陈述后不必使用; ...

class XYZ(object):
    def __init__(self, cameraId):
        self.cameraId = cameraId
        self.index = ""

    def get_test(self):
        print "Index: " + self.index + " CameraID: " + self.cameraId
        return self.cameraId

    def set_test(self, value):
        # Require value to be a tuple!
        assert(isinstance(value, tuple))

        self.cameraId = value[0]

        try:
            self.index = value[1]

        except IndexError:
            self.index = ""

        return True

    TEST_XYZ = property(get_test, set_test)