有没有一种方法可以访问嵌套在另一个函数内的函数。例如,我在这里有这段代码。例如,我做了f().s()
,但是没有用:
def f():
def s():
print(13)
答案 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")
这些都不是您实际尝试实现的正确解决方案...