2024-10-04 11:23:57 发布
网友
我希望能够像C#一样从lambda函数中得到表达式,并将其解析为其他函数? C#中的示例:
void Foo<T>(Expression<Func<T, bool>> expression { // ... } Foo<Baz>(someObj => someObj.HasBar);
lambda运算符将被转换为可以检查的表达式。 python中的equilivent是什么?你知道吗
Python提供对已编译代码形式的完全访问。你知道吗
>>> f = lambda(x): 2*x >>> f.func_code.co_code 'd\x00\x00|\x00\x00\x14S' >>>
原则上,你可以对它进行反向工程来找出表达式,尽管这样做并不意味着什么壮举。dis模块可能会给您一点先机:
>>> import dis >>> dis.dis(f) 1 0 LOAD_CONST 0 (2) 3 LOAD_FAST 0 (x) 6 BINARY_MULTIPLY 7 RETURN_VALUE >>> dis.opname[ord(f.func_code.co_code[-2])] 'BINARY_MULTIPLY' >>> dis.opname[ord(f.func_code.co_code[-1])] 'RETURN_VALUE' >>>
Python提供对已编译代码形式的完全访问。你知道吗
原则上,你可以对它进行反向工程来找出表达式,尽管这样做并不意味着什么壮举。dis模块可能会给您一点先机:
相关问题 更多 >
编程相关推荐