I edited my thread based on feedback. Basically, I need to use a couple of variables from function 1, and I need to print it in function 2.
How do I go about doing that?
Option 1: use global variables. - Using global variables in a function other than the one that created them (for examples)
Option 2: return the values
ex.
def func_one():
var1 = 1
var2 = 2
return var1, var2
def func_two(a,b):
print a
print b
# you can return to multiple vars like:
one, two = func_one()
func_two(one, two)
# this would print 1 and 2
# if you return multiple values to one var, they will return as a list
# returning one value per function may keep your code cleaner
the_vars = func_one()
func_two(the_vars[0], the_vars[1])
# this would print 1 and 2 also
OK, so your variables are caught inside the scope of the function. To use them outside that scope, you need to return them out, e.g.:
def function_one():
number_one = 5
number_two = 6
number_three = 7
return number_one,number_two, number_three
def function_two(number1, number2, number3):
print(number1)
print(number2)
print(number3)
one, two, three = function_one()
function_two(one, two, three)
and here I have made the various vars different in their naming in their different scopes to make it all more apparent.
just use the return statement it'll work like charm
def function_one():
num=5
return num
def function_two():
print(function_one())
function_two()
Shawn's answer is great, very straight-forward and almost certainly what you are looking for. He suggests you bring the variables out of the function_one scope by returning them. Another way to solve the problem is to bring your function_two into function_one's scope with a closure.
def function_one():
num_one = 5
num_two = 6
num_three = 7
def function_two():
print(num_one)
print(num_two)
print(num_three)
return function_two
func_two = function_one()
func_two()
Edit to address your comment. You could also call function_two directly like this. But this is less readable and unpythonic IMO.
function_one()()