Python print() будет печатать свои аргументы как кортеж только после того, как этот .py будет скомпилирован CPython в .so и импортирован. Как он может вести себя как обычный файл py?
Сценарии примерно такие. Вот функция output()
, определенная в mod4.py:
def output(a, b):
print(a, b, str(a)+str(b))
Я использую следующие main.py
для вызова output()
:
import mod4
mod4.output(2, 3)
вывод будет таким:
2 3 23
Затем я компилирую mod4.py с помощью CPython, редактируя setup.py, например:
from distutils.core import setup
from Cython.Build import cythonize
setup(name="mod4.app", ext_modules=cythonize("mod4.py"))
и выполните python setup.up build_ext --inplace
в командной строке, что, в свою очередь, сгенерирует mod4.cpython-37m-darwin.so
. Тогда main.py
будет выводиться как:
(2, 3, '23')
это похоже на кортеж аргументов print().
Версия питона 3.7.4,
$ python --version
Python 3.7.4
Как я могу получить output()
в выводах .so так же, как в .py?