Я заметил, что после импортирования с помощью from __future__ import print_function
я не могу использовать flush с новой функцией python. В своем путешествии, чтобы узнать, почему я обнаружил, я даже не могу проверить, какие аргументы/параметры он принимает. Почему?
- Сначала я убедился, что функция проверки работает.
- Затем я убедился, что функция печати действительно является функцией.
- После этих двух (казалось, чтобы пройти/проверить) я попытался проверить его, но это не удалось и вернуло странную ошибку.
вот что я сделал:
from __future__ import print_function
import inspect
def f(a, b=1):
pass
#print( print_function )
print( inspect.getargspec( f ) )
g = print
print('what is print: ', print)
print('what is g=print: ', g)
print( inspect.getargspec( g ) )
#print( inspect.getargspec( print ) )
#print('Hello', flush=True)
и все прошло, кроме проверки печати:
ArgSpec(args=['a', 'b'], varargs=None, keywords=None, defaults=(1,))
what is print? <built-in function print>
what is g=print? <built-in function print>
Traceback (most recent call last):
File "print_future.py", line 16, in <module>
print( inspect.getargspec( g ) )
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 816, in getargspec
raise TypeError('{!r} is not a Python function'.format(func))
TypeError: <built-in function print> is not a Python function
Почему это происходит?
Это информация о моем питоне и системе:
Python 2.7.11 (default, Jun 24 2016, 21:50:11)
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>