поздняя оценка кода с поздним связыванием переменных?
Вы можете отложить выполнение кода:
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, а затем передать данные и собрать результат... это немного сложнее, чем это, потому что поток не является прямым...
1 ответ
Обычный способ сделать это - использовать функцию.
def e():
return v * 2
>>> v = 5
>>> e()
10
>>> v = 6
>>> e()
12
Я также должен сказать, что я не сторонник функций, которые не принимают свои входные данные как явные параметры. Захват глобала - это обман.