即使已定义,也找不到类变量



我的代码有问题,因为我尝试调用一个类变量(在我的例子中是UPIC1(,并将其定义为其他东西,返回一个错误,指出" NameError:名称 'UPIC1' 未定义"。我的代码本质上是定义类,这些类在调用时加载UPIC图像,裁剪它们并将它们显示在屏幕上。如果格式不正确,我很抱歉,因为这是我第一次发布堆栈溢出

这是代码

import pygame
import sys
black = (0,0,0)
yellow = (255,242,0)
light_yellow = (255,251,270) 
red = (237,28,36)
light_red =(243,91,99)
backgroundblue = (130,255,252)
white = (255, 64, 64)
#defines scale of pictures in px
PICScale = 300
defines resolution
w = 1280
h = 720
pygame.init()
class Question:

    def __init__(self,userinput, UPIC1, UPIC2, UPIC3):
        self.userinput=userinput
        self.UPIC1=UPIC1
        self.UPIC2=UPIC2
        self.UPIC3=UPIC3

q1 = Question('alpha', pygame.image.load('img1a.png'), pygame.image.load('img1b.png'), 'n/a')
q2 = Question('beta', pygame.image.load('img2a.png'), pygame.image.load('img2b.png'), 'n/a')
q3 = Question('gamma', pygame.image.load('img3a.png'), pygame.image.load('img3b.png'), 'n/a')
q4 = Question('brownian', pygame.image.load('img4a.png'), pygame.image.load('img4b.png'), 'n/a')
q5 = Question('electromagnet', pygame.image.load('img5a.png'), pygame.image.load('img5b.png'), 'n/a')
q6 = Question('quark', pygame.image.load('img6a.png'), pygame.image.load('img6b.png'), 'n/a')
q7 = Question('inertia', pygame.image.load('img7a.png'), pygame.image.load('img7b.png'), pygame.image.load('img7c.png'))
q8 = Question('ion', pygame.image.load('img8a.png'), pygame.image.load('img8b.png'), 'n/a')
q9 = Question('matter', pygame.image.load('img9a.png'), pygame.image.load('img9b.png'), 'n/a')
q10 = Question('nuclear', pygame.image.load('img10a.png'), pygame.image.load('img10b.png'), 'n/a')
q11= Question('displacement', pygame.image.load('img11a.png'), pygame.image.load('img11b.png'), 'n/a')
q12 = Question('pendulum', pygame.image.load('img12a.png'), pygame.image.load('img12b.png'),pygame.image.load('img12c.png'))
q13 = Question('resistance', pygame.image.load('img13a.png'), pygame.image.load('img13b.png'),'n/a')
q14 = Question('momentum', pygame.image.load('img14a.png'), pygame.image.load('img14b.png'),pygame.image.load('img14c.png'))
q15 = Question('ampere', pygame.image.load('img15a.png'), pygame.image.load('img15b.png'), 'n/a')
q1.UPIC1 = UPIC1
PIC1 = pygame.transform.scale(UPIC1, (PICScale,PICScale))

screen = pygame.display.set_mode((w, h))
screen.fill((backgroundblue))
running = 1
while running:
    screen.fill((backgroundblue))
    screen.blit(PIC1,(w/2-(3/2*PICScale),0))
    pygame.display.flip()`enter code here`

代码中的任何位置都没有全局变量,因此您尝试为类提供一个尚不存在的值。 您的代码应该添加一行说

UPIC1 = "Value"

行前

q1.UPIC1 = UPIC1

最新更新