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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

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

Python

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

Q&A

解決済

2回答

14556閲覧

vs codeにおけるpythonでundefined variableのエラーを無くしたいです

退会済みユーザー

退会済みユーザー

総合スコア0

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

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

Python

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

1グッド

0クリップ

投稿2020/07/26 00:29

python

1コードimport pgzrun 2WIDTH=800 3HEIGHT=600 4 5def draw(): 6 screen.fill('purple') 7 player.draw() 8 9 screen.draw.line((0,300),(799,300),'red') 10 screen.draw.line((400,0),(400,599),'white') 11 screen.draw.text('ANGLE='+str(player.angle),(80,80)) 12 13def update(): 14 global player 15 player.angle +=1 16 17player=Actor('p1_walk03',(400,300)) 18 19 20pgzrun.go()---

<事象>
真ん中にある「screen」と最後の方の「Actor」の部分がターミナルで赤い波線で表示されるのですが、共通して「undefined variable」と出ます。

ただ実行自体は、エラーなく表示されます。

どうすれば、このエラーをなくせますか?

takkun-oniisan👍を押しています

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

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

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

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

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

guest

回答2

0

実行できているのであれば、とりあえず今の段階ではそのまま気にしなくてもよいかと思います。
実行エラーではなくPyLintのチェック結果として表示しているだけなので。

ただ、どうしても消したい場合はsettings.json"python.linting.pylintArgs": ["--disable=E0602"]を追加すれば消えます。
参考:Visual Studio Code で pylint のメッセージを抑制する

投稿2020/07/26 01:23

can110

総合スコア38341

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

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

teamikl

2020/07/26 01:46

lintの警告だったんですね。エラーだと思って読み違えてました。 import pgzrun 内で環境に動的な手段で設定される為、 pylint で情報を追いきれない様です。 ※自分の回答の方法では、Actor の警告は抑制できても、 screen は(クラスではないので)対応できません。
can110

2020/07/26 01:55

そうですね。 PyLintが出しているエラーですが、実際に実行しているわけではないのでわりと誤判定しますね。
guest

0

ベストアンサー

Actor は pygame zero での組み込みクラスですが、
チュートリアル等の説明では pgzrun コマンド で実行されることを想定して書かれてます。

python コマンド で実行する場合(vs code 等IDEでの実行)は、
自分で import する必要があります。
(追記: 実行には支障ないという事から、ここは勘違いでした。)

ファイル先頭で以下の行を付け加えて下さい。

python

1from pgzero.actor import Actor

他にも、組み込みオブジェクト の利用の際は、同様に import が必要です。
※ import するモジュールはそれぞれ異なるので、インストールされた場所 から探します。

追記2: pgzeroで実際に読み込まれる組み込み


pylint 対応案

python

1from pgzero.builtins import *

投稿2020/07/26 01:13

編集2020/07/26 02:12
teamikl

総合スコア8760

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

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

退会済みユーザー

退会済みユーザー

2020/07/26 02:32

説明が紛らわしくてすみませんでした。 気にするほどでもなければ、このままにしておきます。 can110さんも、抑制方法教えていただきありがとうございました。
teamikl

2020/07/26 02:41 編集

pygame zero の組込自体はそれほど多くないので、 私も、今の段階では気にせず読み飛ばすに1票 です もしIDEでインテリセンス (メソッド一覧をだしたり、入力を補助してくれる機能)を使いたいといった場合は、明示的にimport した方が良いかもしれません。 ---- 少し捕捉 "screen" 以外は from pgzero.builtins import * で読み込めますが、 "import *" というimport文自体も警告を喰らってしまいます。 明示的にimport する名前をひとつづづ書く必要があります。 from pgzero.builtins import Actor, Rect, click ---- 警告を抑制する場合は、他の未定義変数も教えてくれなくなるので 以下は多分pylint の設定ではないのですが、 抑制方法で組込の名前一覧を指定しておく場合の参考に。 https://github.com/lordmauve/pgzero/issues/61 より PYFLAKES_BUILTINS=Actor,Rect,ZRect,animate,clock,exit,images,keyboard,keymods,keys,mouse,music,screen,sounds,storage,tone
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問