如何在Python中动态创建函数对象而不使用compile()、exec()或lambdas

问题描述 投票:0回答:1

我一直在尝试在 Python 中动态创建和更改函数。我研究过网络和 Stack Overflow,但我看到的大多数解决方案都使用以下其中一种,这是我不想要的:

  1. exec()
    和/或
    compile()
  2. lambda
    s
  3. 闭包和嵌套函数

例如我有以下代码:

def func(a, b, c):
    return all([a, b, c])

我想将其更改为:

def func2(a, b, c):
    return any([a, b, c])

但是,由于某些原因,我不被允许更改该函数的代码。我有什么办法可以做到这一点吗?我正在寻找代码字节交替之类的东西或 AST 相关的解决方案。有什么想法吗?

python function dynamic abstract-syntax-tree python-internals
1个回答
0
投票

简单,只需用

func
 阴影 
func2

func = func2 
© www.soinside.com 2019 - 2024. All rights reserved.