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

2024-06-16 18:52:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个新手程序员,想用Python 3.3.2编写一个程序,它有一个main()函数,调用function1(),然后循环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()中使用它。

提前谢谢。


Tags: 函数代码name程序名称hello定义main
2条回答

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

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关键字将其声明为全局内部变量。虽然,这几乎总是一个坏主意,因为所有可怕的错误,你将最终与全球状态创建。

相关问题 更多 >