我有一个看起来像这样的函数:
def f():
call_some_function_A()
call_some_function_B()
[...]
call_some_function_Z()
Run Code Online (Sandbox Code Playgroud)
我希望函数反向执行; 也就是说,执行必须如下所示:
def f'():
call_some_function_Z()
[...]
call_some_function_B()
call_some_function_A()
Run Code Online (Sandbox Code Playgroud)
(f
总是这样,逻辑上可以反转它;即没有变量声明或类似的东西).
我怎么能做到这一点?
我不能只编写一个反向f'
调用语句的函数f
,因为我不希望f'
每次f
更改都要更新.
我也无法修改f
.
(请不要告诉我,我不应该尝试这样做,或者重新设计我的代码,或类似的东西 - 这不可能.)
如果您f()
完全由这些函数调用组成,则可以将其重新编写为列表:
functions = [
call_some_function_A,
call_some_function_B,
# [...]
call_some_function_Z,
]
Run Code Online (Sandbox Code Playgroud)
然后使用它以(反向)顺序调用函数.
def f():
for func in functions:
func()
def f_():
for func in reversed(functions):
func()
Run Code Online (Sandbox Code Playgroud)