Python3を使っています.
クラスの継承がいまいち理解できず,エラーに悩まされています.
クラスの親子関係がよくわかりません.
以下の課題で困っています.
<課題>
以下の知識をもつフレームネットワークがある. ・犬は生物である ・チワワは犬である ・生物は食事する ・犬には尻尾がある ・チワワの特技はお座り 課題1 「チワワの特技はお座り」と返答する 課題2 「チワワは食事をするか」,is-a関係を用いて「Yes」と返答させる.
私が書いたコード
class Creature(object): def __init__(self): self.attr = '食事する' def printAttr(self): print('生物は' + self.attr) class Dog(Creature): def __init__(self): self.have = '尻尾' def printHave(self): print('犬には' + self.have + 'がある') class Chihuahua(Dog): def __init__(self): self.skill = 'お座り' def printSkill(self): print('チワワの特技は' + self.skill) def main(): dog = Chihuahua() dog.printSkill() #課題1 dog.printHave() #'Chihuahua' object has no attribute 'have' if __name__ == '__main__': main()
課題1は「チワワの特技はお座り」と正しく出力されるのですが,printHaveはエラーが出ます.
また,課題2のis-a関係を用いて...のやり方がわかりません.
なんとなくオブジェクト指向というものはクラスによってオブジェクトに属性を付属していく
イメージなのですがこの書き方が正しいのかわかりません.
この課題通りでなくても,is-a関係をサンプルを用いて解説してくれる方がいらっしゃると嬉しいです.
よろしくお願い致します.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/17 09:38