前提・実現したいこと
下記のソースでエラーが発生する理由が知りたいです。
どなたか教えて頂けないでしょうか。宜しくお願い致します。
発生している問題・エラーメッセージ
リスト内包表記でクラス変数に代入する際に
リスト内包表記の式で別のクラス変数"x"を使用すると
変数xが未定義である旨のエラーメッセージを出力します。
エラーメッセージ Traceback (most recent call last): File "C:\Users\harad\Desktop\Copal.tmp", line 5, in <module> class class_demo: File "C:\Users\harad\Desktop\Copal.tmp", line 7, in class_demo y = [x for i in range(5)] File "C:\Users\harad\Desktop\Copal.tmp", line 7, in <listcomp> y = [x for i in range(5)] NameError: name 'x' is not defined
該当のソースコード
python3.6 エラーが発生するソースコード class class_demo: x = 6 y = [x for i in range(5)] #以下試した際のコード #その1 class class_demo: x = 6 y = [i for i in range(x)] print(y) #[0, 1, 2, 3, 4, 5] #その2 class class_demo: x = 6 def make_listcomp(self): y = [class_demo.x for i in range(1)] print(y) #[6]
試したこと
上記ソース:その1 リスト内包表記のforステートメントにクラス変数は使用可能でした。
上記ソース:その2 クラスではなくメソッドの中に記述すると正常に出力されます。
回答3件
あなたの回答
tips
プレビュー