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]
但要将其转变为可调用函数还需要一些技巧。如何在单元测试中实现这一点,目前尚不清楚