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

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

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

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

Q&A

解決済

1回答

1250閲覧

リストをインスタンスからコンストラクタに渡す エラー

Untitled_Sample

総合スコア192

Python 3.x

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

0グッド

0クリップ

投稿2018/04/28 00:01

編集2018/04/28 00:33

処理とは関係なく、値だけをコンストラクタに渡して表示
別の処理で計算などをする。

リストをインスタンスからコンストラクタに渡際に
エラー 2つの必要な位置引数が欠けている
と言われます。

どの様に対処すれば良いですか?

#実際のコード

python

1class MyClass: 2 3 def __init__(self,Coca_Cola,Cider): #コンストラクタ 4 # 渡された値を代入 5 self.Coca_Cola=Coco_Cola 6 self.Cider=Cider 7 8 def __str__(self): 9 return "name:{0._Coca_Cola}, {0._Cider}".format(self) 10 11 12 13 14 # メンバ関数を定義 15 def set_value(self,tes): # クラス内の メソッド 16 self.Noo = tes #メンバ変数に代入 17 18 # 表示 19 def value_prints(self): 20 print(self.Noo) 21 22 def Add(self,a,b): 23 return a+b 24 25 26if __name__ == "__main__": 27 a = MyClass() # MyClass のインスタンスを生成 28 #tes=list(map(int,input().split())) #test用 29 tes=[5,5] 30 a.set_value(tes) # 変数に代入 31 32 # インスタンスからコンストラクタに渡す エラー 33 MyClass=tes # 2つの必要な位置引数が欠けている 34 35 # 表示 36 a.value_prints()#メンバ関数 37 38 # 計算 39 print(a.Add(tes[0],tes[1]))#メンバ関数 40 41

#実際のエラー

python

1Traceback (most recent call last): 2 File "untitled02.py", line 27, in <module> 3 a = MyClass() # MyClass のインスタンスを生成 4TypeError: __init__() missing 2 required positional arguments: 'Coca_Cola' and 'Cider' 5Error in sys.excepthook: 6Traceback (most recent call last): 7 File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook 8 from apport.fileutils import likely_packaged, get_recent_crashes 9 File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module> 10 from apport.report import Report 11 File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module> 12 import apport.fileutils 13 File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module> 14 from apport.packaging_impl import impl as packaging 15 File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module> 16 import apt 17 File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module> 18 import apt_pkg 19ModuleNotFoundError: No module named 'apt_pkg' 20 21Original exception was: 22Traceback (most recent call last): 23 File "untitled02.py", line 27, in <module> 24 a = MyClass() # MyClass のインスタンスを生成 25TypeError: __init__() missing 2 required positional arguments: 'Coca_Cola' and 'Cider' 26

#完成したコード

python

1class MyClass: 2 3 def __init__(self,Coca_Cola,Cider): #コンストラクタ 4 # 渡された値を代入 5 self.Coca_Cola=Coca_Cola 6 self.Cider=Cider 7 8 def __str__(self): 9 return "name:{0._Coca_Cola}, {0._Cider}".format(self) 10 11 12 13 14 # メンバ関数を定義 15 def set_value(self,tes): # クラス内の メソッド 16 self.Noo = tes #メンバ変数に代入 17 18 # 表示 19 def value_prints(self): 20 print(self.Noo) 21 22 def Add(self,a,b): 23 return a+b 24 25 26if __name__ == "__main__": 27 28 #tes=list(map(int,input().split())) #test用 29 tes=[5,5] 30 31 # インスタンスからコンストラクタに渡す エラー 32 #MyClass=tes # 2つの必要な位置引数が欠けている 33 a = MyClass(5,5) # MyClass のインスタンスを生成 34 35 # 変数に代入 36 a.set_value(tes) 37 38 # 表示 39 a.value_prints()#メンバ関数 40 41 # 計算 42 print(a.Add(tes[0],tes[1]))#メンバ関数 43 44

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

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

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

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

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

guest

回答1

0

ベストアンサー

a = MyClass() # MyClass のインスタンスを生成

引数が二つ必要なのに一つも指定していないからでは?

投稿2018/04/28 00:10

Zuishin

総合スコア28656

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

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

Untitled_Sample

2018/04/28 00:16

a = MyClass(5,5) だと、NameError: name 'Coco_Cola' is not defined です。
Zuishin

2018/04/28 00:18

self.Coco_Cola を定義してください。
Zuishin

2018/04/28 00:21 編集

間違えました。 別途定義しなくても使えますね。 Coco_Cola または Coca_Cola に統一してください。
KSwordOfHaste

2018/04/28 00:22 編集

引数はCoca_Colaです。コンストラクター本体では self.Coca_Cola = Coco_cola となってます。右辺の綴りをよくみてください。単なるtypoですよ? to: 質問者さん --- 失礼しました、かぶっちゃいました > to: Zuishinさん
Zuishin

2018/04/28 00:23

フォローありがとうございます。
Untitled_Sample

2018/04/28 00:30

気づきませんでした。 皆さん、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問