-1
我遇到了我的代碼問題,因爲我試着調用一個類變量(在我的例子中是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`
之前添加一行說
'q1.UPIC1 = UPIC1'要求*全局名稱*'UPIC1'被定義。這同樣適用於下一行中的'UPIC1'使用。 –
無法在此代碼中設置類屬性。你在'Question .__ init__'方法中設置了一個*實例屬性*。 –