为什么我得到和错误(NameError名称'首先'未定义

时间:2016-11-26 03:26:00

标签: python nameerror

def one():
    if(slist[0] == 'a'):
        first = 3

此代码位于我的' numbers.py'文件,我重复了每个字母表的字母。此文件将导入到我正在启动的主文件中。

import number
from number import *
if(len(number.string) == 1):
    number.one()

print(number.first)

此代码在我的主文件中,应该打印一个' 3'如果你输入' A'当它询问你想要解码的时候

2 个答案:

答案 0 :(得分:1)

默认情况下,第一个变量是函数1的本地变量,退出函数后它将不再存在,将其声明为全局变量以使其在函数外可访问

您可能不需要行from number import *,因为您应该从数字命名空间访问。不建议使用import *来避免命名空间污染

first=None
def one():
    global first
    if(slist[0] == 'a'):
        first = 3

答案 1 :(得分:1)

另一种解决方案可能是返回您的first变量,以便您可以根据需要在main中使用它。

我告诉你:

def one():
    if(slist[0] == 'a'):
        first = 3
        return first
        ''' you could use this instead '''
        #return 3

然后,回到你的主要:

import number
if(len(number.string) == 1):
    first = number.one()

print(first)