Python:如何在其他函数中使用一个函数的命名变量



我是一个新手程序员,试图使用Python 3.3.2制作一个程序,该程序具有调用function1()main()函数,然后循环function2()function3()

我的代码通常如下所示:

def function1():
    print("hello")
def function2():
    name = input("Enter name: ")
def function3():
    print(name)
def main():
    function1()
    while True:
        funtion2()
        function3()
        if name == "":
            break
main()

目前,当我运行程序并输入名称时,我收到以下错误:

NameError: global name 'name' is not defined

我知道这是因为name仅在function2()中定义。我如何使name被定义为"全局名称",或者以某种方式能够在function3()main()中使用它。

提前谢谢。

不要尝试将其定义为全局变量,而是返回它:

def function2():
    name = input("Enter name: ")
    return name
def function3():
    print(function2())

如果要使用函数中定义的变量在所有函数中可用,请使用类:

class A(object):
   def function1(self):
       print("hello")
   def function2(self):
       self.name = input("Enter name: ")
   def function3():
       print(self.name)
   def main(self):  
       self.function1()
       while True:
          funtion2()
          function3()
          if not self.name:
              break
A().main()

在函数外部定义变量,然后首先使用 global 关键字将其声明为全局变量。虽然,这几乎总是一个坏主意,因为您最终会使用全局状态创建所有可怕的错误。

相关内容

  • 没有找到相关文章

最新更新