导入最初未设置的变量

时间:2014-07-11 16:34:33

标签: python string import pygame

我正在尝试获取一个包含名称的变量并将其显示在证书上,但该变量实际上并未设置,直到用户点击返回,如下所示,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”,其中包含该人输入的内容以导入第二个文件。

2 个答案:

答案 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."