1

次のコードがあるとします。

class MyClass(object):
    def __init__(self, param):
        self.param = param

    @property
    def super_param(self):
        return Param(self, self.param)


class Param(object):
    def __init__(self, parent, param):
        self.param = param
        self.parent = parent

    @property
    def get_parent(self):
        return self.parent

私の質問は、 @property デコレーターをこのように使用することは悪い習慣と見なされますか? 長所や短所はありますか?

4

1 に答える 1

2

なぜだけではないのですか

class MyClass(object):
    def __init__(self, param):
        self.param = Param(self, param)

プロパティからクラスを返すことに特に問題はないと思います。より良い質問は、そうすることで何を達成しようとしているのかということです。

編集:変更したくない場合は、プライベートプロパティにします:

class MyClass(object):
    def __init__(self, param):
        self._param = param     # naming convention, 'don't muck with it'
        # OR
        self.__param = param    # name mangled

    @property
    def param(self):
        return self._param
于 2012-06-20T01:11:19.973 に答える