簡體   English   中英

導入最初未設置的變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM