Python 有没有办法在函数内部调用函数
是否有一种方法可以访问嵌套在另一个函数中的函数。例如,我这里有一段代码。例如,我做了Python 有没有办法在函数内部调用函数,python,Python,是否有一种方法可以访问嵌套在另一个函数中的函数。例如,我这里有一段代码。例如,我做了f().s(),但它不起作用: def f(): def s(): print(13) 您需要指定第二个函数是全局变量,然后需要调用第一个函数,以便Python解释器创建第二个函数 见下文 >>> def foo(): ... global bar ... def bar(): ...
f().s()
,但它不起作用:
def f():
def s():
print(13)
您需要指定第二个函数是全局变量,然后需要调用第一个函数,以便Python解释器创建第二个函数 见下文
>>> def foo():
... global bar
... def bar():
... print("Hello world!")
...
>>> bar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'bar' is not defined
>>> foo()
>>> bar()
Hello world!
>>>
>>def foo():
... 全球酒吧
... def bar():
... 打印(“你好,世界!”)
...
>>>bar()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“bar”
>>>foo()
>>>bar()
你好,世界!
>>>
你当然可以做点什么
def f():
def s():
print("S")
return s
f()()
你也可以在内部文件中公开它们
def f(cmd):
return {"s": lambda: do_something_s,"y": lambda: do_something_y}.get(cmd,lambda:invalid_cmd)()
然后使用f(“s”)
或f(“y”)
这些都不可能是您真正想要实现的目标的正确解决方案……是的,您可以:
def():
def s():
印刷品(13)
返回s
然后你可以打电话:
>>f()()
13
或者,如果要使用f().s():
def():
S类:
def s():
印刷品(13)
返回S
f().s()
表示f()
的结果是您正在调用的对象在您的案例中似乎并非如此简短的回答:不。您可以对类执行类似的操作。您希望在这里实现什么?如果您希望在外部范围内调用嵌套函数,最好在外部定义它。代码对象位于f.。\uuuu code\uu.co\u consts[1]
但要将其转变为可调用函数还需要一些技巧。如何在单元测试中实现这一点,目前尚不清楚