以下は、私の部分的なクラス定義です。
class Trial:
font = pygame.font.Font(None, font_size)
target_dic = {let: font.render(let, True, WHITE, BG) for let in list("ABCDEFGHJKLMNPRSTUVWX")}
部分クラス定義の最後の行でtarget_dic = {let: font.render(let, True, WHITE, BG) for let in list("ABCDEFGHJKLMNPRSTUVWX")
エラーが返されます: グローバル名 'font' が定義されていません。けっこうだ。
ただし、次のテスト ケースを試してみましたが、エラーは発生しませんでした。
class x:
dat = 1
datlist = [dat for i in range(10)]
最初のケースが機能しないのはなぜですか? font
辞書理解に至るまでにメンバは存在しないのですか?
これらの操作をに移動する必要があります__init__
か、またはクラス オブジェクトの作成時にリストを 1 回だけ定義することは可能ですか?
編集:
わかりやすくするために、Trial オブジェクトの作成に費やす時間を削減するために、クラス オブジェクトの作成時にリストを作成できるようにしたいと考えています。