そのため、私は通常 OOP を使用しておらず、思ったほど理解していないようです。
(地理的) 州のクラスがあるとします。
class State(object):
@property
def population(self):
return self._population
@population.setter
def population(self,value):
if value < 0:
raise ValueError("Population must not be negative")
else:
self._population = value
そして、事実上同一の (現時点では) Town のクラス:
class Town(State):
@property
def population(self):
return self._population
@population.setter
def population(self,value):
if value < 0:
raise ValueError("Population must not be negative")
else:
self._population = value
ここで、State をインスタンス化し、それに特定の集団を与えるとします。State インスタンスの人口を継承する Town のインスタンスを作成するにはどうすればよいですか? (一時的に、私は推測します - これは単なる例です。) または、継承ではなく構成を使用する必要がありますか?
私が現在考えている方法では、これはうまくいくはずです:
s = State()
s.population = 10
t = Town(s)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-141-00f052d998f0> in <module>()
----> 1 t = Town(s)
TypeError: object.__new__() takes no parameters