I'm a newbie programmer trying to make a program, using Python 3.3.2, that has a main() function which calls function1(), then loops function2() and function3().
My code generally looks like this:
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()
Currently, I get the following error when I run the program and enter a name:
NameError: global name 'name' is not defined
I understand that this is because name is only defined within function2(). How do I make it so that name is defined as a 'global name', or somehow be able to use it within function3() and main().
Thanks in advance.
Don't try to define it a global variable, return it instead:
def function2():
name = input("Enter name: ")
return name
def function3():
print(function2())
If you want to use variables defined in function to be available across all functions then use a class:
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()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With