我正在尝试获取一个包含名称的变量并将其显示在证书上,但该变量实际上并未设置,直到用户点击返回,如下所示,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.value中然后变量“Name”我需要变量“Name”,其中包含该人输入的内容以导入第二个文件。
答案 0 :(得分:1)
当您致电Name
时,print eztext.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')
答案 1 :(得分:0)
因为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."