我是一名新手程序员,试图使用 Python 3.3.2 编写一个程序,该程序具有main()
调用的函数function1()
,然后循环function2()
and 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()
and 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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)