有没有一种方法可以在函数内部调用函数

时间:2020-09-28 05:13:16

标签: python

有没有一种方法可以访问嵌套在另一个函数内的函数。例如,我在这里有这段代码。例如,我做了f().s(),但是没有用:

def f():   
 def s():   
     print(13)    



                  

3 个答案:

答案 0 :(得分:1)

是的,您可以:

def f():
    def s():
        print(13)
    return s

然后您可以致电:

>>> f()()
13

或者如果您想拥有f()。s():

def f():
   class S:
        def s():
            print(13)
    return S

答案 1 :(得分:0)

您需要指定第二个函数是全局变量,然后需要调用第一个函数,以便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!
>>> 

答案 2 :(得分:0)

您当然可以做点什么

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")

这些都不是您实际尝试实现的正确解决方案...