где python сохраняет результат последней операции?

1

Где Python сохраняет результат последней операции?

Например, если последняя операция была math.sqrt(9), где Python сохраняет значение 3.0?

Или, если последняя операция была "hello " + "world!", где сохранено значение 'hello world!'?

Я хочу подходить к этому из программы C (используя API Python C) и передать это значение переменной char*.

  • 0
    Может быть, вы могли бы привести конкретный пример того, что вы хотели бы сделать, и какую часть этого сделать в C и какую часть в Python. Почему это помечено C #?
  • 0
    У меня есть программа на Си. Программа запускает несколько сценариев Python, и мне нужен способ собрать в коде C все выходные данные, которые Python делает ... для целей графического интерфейса
Теги:

2 ответа

6

Это не так.

Похоже, вы хотите вызвать код Python с C и использовать результат в остальной части кода C.

Что вы делаете, это написать функцию в коде Python и использовать ее возвращаемое значение. Он будет передан как PyObject* из функции C API, которая вызывает функцию Python.

  • 0
    мне нужно захватить вывод питонов из кода C в строку. Как я могу реализовать такую функцию ...?
  • 0
    Когда вы вызываете функцию python из вашего C-кода, она возвращает PyObject *. Используйте API, чтобы проверить, что это представляет строку (потому что это может быть любой объект Python - независимо от того, что было возвращено из функции), и извлеките строку C.
6

Сам Python не сохраняет результат последней операции. Python REPL сохраняет последний результат в _, но вы не будете использовать REPL в этой ситуации.

  • 2
    @ user534976: REPL означает Read-Eval-Print-Loop, который здесь относится к интерактивной консоли Python или командной строке. Обычно это не задействуется при выполнении скрипта Python, если вы не import его из оболочки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню