如何调用一个函数,它在python的另一个函数中定义?
问题描述:
def out():
var1 = "abc"
print(var1)
def inner():
var2 = "def"
我想打电话给唯一的“内在”的功能......最后的输出应该只打印VAR2不VAR1 ...如何调用一个函数,它在python的另一个函数中定义?
预先感谢您
答
的方法您的艰难被称为嵌套函数:
您可以赤这个答案,了解有关nested function in Python。
其他一些有关closure
另一种方法是,
def fun1():
x = 11
def fun2(a=a):
print x
fun2()
fun1()
输出:
prints 11
实施例2:
def f1(x):
def add(y):
return x + y
return add
res = f1(5)
print(res(10)) # prints 15
+0
你的第一个例子是错误的。它给出了一个错误,说a是未定义的。另外,在'def fun2(a = a)'结尾处需要冒号。 – alanf
+0
我错过了冒号没有注意到..你会提供未定义的日志,我在这里解释了Python中内部函数的用法。 – LethalProgrammer
答
如果您不想运行“out”功能的某个部分,则可以使用参数。
def out(choice=True):
if choice :
var1 = "abc"
print(var1)
else :
def inner():
var2 = "def"
print(var2)
inner()
您必须移动'inner()'并为'var2'添加一个'print'调用。这与django和tkinter btw无关。 –
为什么你不只有两个不同的功能?在你的项目中有一些要求吗? – LethalProgrammer
如何在'print(var2)'没有'print'时打印var2'?如果您甚至没有以任何方式返回,您希望如何调用该函数?请澄清你的问题。 –