您可以推迟执行代码:

In [12]: v = 5

In [13]: e = ' v * 2 '

In [14]: eval(e)
Out[14]: 10


我想对没有将其分配给字符串的普通python代码进行后期评估吗?

有一种技术可以做到这一点吗?关闭? __call__吗?



另一个例子 :

In [15]: b = bitarray('10110')

In [16]: p = Pipe(lambda x : x * 2 )

In [17]: e = ' b | p '

In [18]: eval(e)
Out[18]: bitarray('1011010110')


我正在尝试构建类似于TensorFlow和keras的执行流图/管道之类的东西,然后传递数据并收集结果...比这还复杂一点,因为该流没有向前推进...

最佳答案

通常的方法是使用一个函数。

def e():
    return v * 2

>>> v = 5
>>> e()
10
>>> v = 6
>>> e()
12


我还必须说,我不赞成那些不将其输入作为显式参数的函数。抢占全球就是骗子。

09-16 09:49