以下是我的部分类定义:
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__
或者是否可以在创建类对象时只定义一次列表?
编辑:
为清楚起见,我希望能够在创建类对象时填充列表,以减少创建 Trial 对象所花费的时间。