Python:如何在其他函数中使用来自一个函数的命名变量
我是一个新手程序员,试图用Python 3.3.2编写一个程序,它有一个Python:如何在其他函数中使用来自一个函数的命名变量,python,function,python-3.x,global-variables,Python,Function,Python 3.x,Global Variables,我是一个新手程序员,试图用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()
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()
中使用它
提前感谢。不要尝试将其定义为全局变量,而是返回:
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
关键字将其声明为global-inside。尽管如此,这几乎总是一个坏主意,因为您最终会在全局状态中创建所有可怕的错误。我尝试了这个方法,但现在它返回了一个错误:Traceback(最近一次调用):文件“I:\School\ITEC 1150-02\Address book group assignment\TEAMLAB2.py”,第43行,在一个()main()文件中“I:\School\ITEC 1150-02\Address book group assignment\TEAMLAB2.py”,第37行,在main function2()名称中错误:全局名称“function2()”未定义
无所谓,我已将其使用;使用了self.function2()
而不是function2()
。谢谢!