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

时间:2013-11-13 05:59:12

标签: python function python-3.x global-variables

我是一名新手程序员,试图使用Python 3.3.2创建一个程序,该程序具有调用main()的{​​{1}}函数,然后循环function1()和{{1} }。

我的代码通常如下所示:

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中使用它。

提前致谢。

2 个答案:

答案 0 :(得分:4)

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

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()

答案 1 :(得分:2)

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