授業のコツをつかみ始めたばかりなので、簡単な人口動態プログラムを作成して練習しようと思いました。super() の実装方法がよくわかりません。古い投稿やその他のオンライン フォーラムの内容を読んでいましたが、何も機能しません。誰かが私に理由を説明できますか?
class Females(object):
'''Female population settings. Defines the pregnancy rates, death rates,
and live births for a year.'''
def __init__(self,female):
super(Females,self).__init__()
self.female = female
self.live_birth
def __str__(self):
return 'Current female population: {0}'.format(str(self.female))
def death(self):
self.female_death_oldage=int((randint(0,50)*0.01)*female)
return self.female_death_oldage
def pregnancies(self):
self.female_pregnancies=int(((randint(0,100)*0.01)*female)*0.2)
return self.female_pregnancies
def live_birth(self):
self.live_births=int(self.female_pregnancies*((randint(0,100)*0.01)))
return self.live_births
def total_females(self):
self.next_female_generation = female - self.female_death_oldage
class Babies(Females):
def __init__(self):
super(Babies,self).__init__()
def babies_born(self):
self.little_girls = int(self.live_births*(randint(0,100)*0.01))
self.little_boys = (self.live_births - self.little_girls)
return self.little_boys,self.little_girls
if __name__=='__main__':
x=Males(male)
y=Females(female)
b=Babies()
print '%r males died from old age' % x.death()
print '%r females became pregnant' % y.pregnancies()
print 'There were %r live births' % y.live_births()
print b.babies_born()
(Eclipse Junoを使用して)実行しようとすると、次のようになります。
File "/Users/me/Documents/Coding/Population/Population.py", line 78, in <module>
b=Babies()
File "/Users/me/Documents/Coding/Population/Population.py", line 56, in __init__
super(Babies,self).__init__()
TypeError: __init__() takes exactly 2 arguments (1 given)