在我的Python类

时间:2015-08-25 14:30:15

标签: python

我试图锻炼一种方法,使我的班级中的属性不可变。这就是我的想法,它似乎有效。但是可以接受吗?

感觉就像是黑客,或者可能有不同的方法来实现这一目标。这可以接受吗?如何才能实现这一目标呢?

class RankCalculator():


       def __init__(self, votesup=None, votesdown=None):
           self.__dict__['votesup'] = max(votesup, 0)
           self.__dict__['votesdown'] = max(votesdown, 0)


       def __setattr__(self, name, value):
            """
            Object state cannot be modified after it is created
            """
            raise TypeError('objects are immutable')

       @property
       def score(self):
          return float(self._score())
为简洁起见,省略了

self._score()

0 个答案:

没有答案