поздняя оценка кода с поздним связыванием переменных?

Вы можете отложить выполнение кода:

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

Я также должен сказать, что я не сторонник функций, которые не принимают свои входные данные как явные параметры. Захват глобала - это обман.

Другие вопросы по тегам