[英]Importing Variable that's not initially set
我正在嘗試使用包含名稱的變量並將其顯示在證書上,但是直到用戶按下回車鍵時才真正設置該變量,如下所示,self.value由用戶輸入設置。
#File 1 Containing Varible
if event.type == KEYDOWN:
if event.key == K_BACKSPACE: self.value = self.value[:-1]
elif event.key == K_LSHIFT or event.key == K_RSHIFT: self.shifted = True
elif event.key == K_SPACE: self.value += ' '
elif event.key == K_RETURN:
Name = self.value
execfile('Certificate.py')
我導入變量存儲在其中的文件,然后嘗試打印變量以進行測試,結果顯示:
AttributeError: 'module' object has no attribute 'Name'
為什么會這樣呢?
#File2 where i'm trying to input the variable to.
import pygame, sys, eztext
from pygame.locals import *
print eztext.Name
編輯:謝謝那些迄今已回答但我認為我沒有正確解釋問題的人,eztext文件是一個模塊,允許用戶在屏幕上鍵入其名稱,然后將其存儲在self中。值,然后是變量“名稱”,我需要變量“名稱”以及該人鍵入的內容,以將其導入第二個文件。
調用print eztext.Name
時, Name
變量不存在。
嘗試在開始時將其設置為None
或其他值。
Name = None
#File 1 Containing Varible
if event.type == KEYDOWN:
if event.key == K_BACKSPACE: self.value = self.value[:-1]
elif event.key == K_LSHIFT or event.key == K_RSHIFT: self.shifted = True
elif event.key == K_SPACE: self.value += ' '
elif event.key == K_RETURN:
Name = self.value
execfile('Certificate.py')
由於Python不需要聲明,因此eztext.Name在設置之前不存在。 解決此問題的最佳方法是在eztext文件的開頭明確定義Name = None
。
但是,如果由於某種原因無法修改eztext,則還可以執行以下操作:
#File2 where i'm trying to input the variable to.
import pygame, sys, eztext
from pygame.locals import *
try:
print eztext.Name
except AttributeError:
print "eztext has no name."
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.