質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6526閲覧

複数の引数を伴うクラスを継承できない

Nishin

総合スコア30

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/19 06:23

現在私は、Pythonの認定資格取得を目指して、基礎的事項からPythonを勉強しており、直近ではクラス継承についてを把握しようとしているところです。

大元のクラスと継承先クラスについて記述したコードは、次の通りです。

Python

1# クラス継承 2""" 3元々作成しているクラスを親クラスとして新クラスを作成する。 4親クラスの内容をある文法で引き継ぐほかに、子クラスでは新しいクラスを定義する。 5""" 6class FavChara: 7 def __init__(self, title, name): 8 self.title = title 9 self.name = name 1011class NeoFavChara: 12 def __init__(self, title, name, prime): 13 super().__init__(title, name) 14 self.prime = prime 1516classes = [] 17classes.append(NeoFavChara('ドラゴンボール','孫悟飯','孫悟空')) 18classes.append(NeoFavChara('ワンピース','ウソップ','ルフィ')) 19classes.append(NeoFavChara('ワンパンマン','サイタマ','サイタマ')) 20classes.append(NeoFavChara('約束のネバーランド','エマ','エマ')) 21classes.append(NeoFavChara('鬼滅の刃','竈門ねず子','竈門炭治郎')) 2223for eachCls in classes: 24 print("『"+eachCls.title+"』で一番好きなキャラ: "+eachCls.name+"(主人公は"+eachCls.prime+")")

しかし、こちらを「IDLE (Python 3.8 64-bit)」で実行したところ、

Traceback (most recent call last): File "C:\Users\user\Desktop\PythonTrials\izm06.py", line 78, in <module> classes.append(NeoFavChara('ドラゴンボール','孫悟飯','孫悟空')) File "C:\Users\user\Desktop\PythonTrials\izm06.py", line 74, in __init__ super().__init__(title, name) TypeError: object.__init__() takes exactly one argument (the instance to initialize)

というエラーが出てしまい、そこから一向に、継承したクラスの内容を文字列に含めてすべて出力するところまで漕ぎつけられません。

https://teratail.com/questions/157952 の質問に寄せられた回答から、最初にクラスで__init__を付けて設定した引数と呼び出し時に利用する引数との数が合っていない、という可能性が思い浮かんだのですが、それでもどのような記述で引数を設定れば良いのかが分からずにいます。

些末な問題点故に起こってしまった事とは承知しておりますが、御存知の方がいらっしゃいましたら、今回もご回答をお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

diff

1- class NeoFavChara: 2+ class NeoFavChara(FavChara):

投稿2020/11/19 06:29

ozwk

総合スコア13553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nishin

2020/11/19 06:40

!そういえば、エラー発生後に調査したPythonの解説サイトの一つで、確かに継承するクラスの後ろに(継承元クラス)と付けていたのを確認していました。 ・・・そりゃそうですよね。どこのクラスを継承するかを指定していなければ継承のしようがない訳ですから・・・。 こちらも踏まえて再度実行したところ、今度は無事に出力することができました。 ご回答頂きまして、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問