2017-03-25 46 views
-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` 
+0

之前添加一行說

UPIC1 = "Value" 

'q1.UPIC1 = UPIC1'要求*全局名稱*'UPIC1'被定義。這同樣適用於下一行中的'UPIC1'使用。 –

+0

無法在此代碼中設置類屬性。你在'Question .__ init__'方法中設置了一個*實例屬性*。 –

回答

0

沒有一個全局變量的任何地方在你的代碼,所以你試圖給這個班級一個不存在的價值。您的代碼應行

q1.UPIC1 = UPIC1 
相關問題