1

Python 2.7で印刷関数を返すにはどうすればよいですか?Python 3ではと入力できますreturn print(True)が、Python 2.7では、を実行しようとすると無効な構文エラーが発生しますreturn print True。私はPythonを初めて使用します。

4

3 に答える 3

9

Python 2.xではprint、関数ではなくキーワードです。考えられる最善の解決策は、次のように3.xのような印刷動作をインポートすることです。

from __future__ import print_function

p = print         # now you can store the function reference to a variable
p('I am a function now!')

>>> I am a function now!

def get_print():
    return print   # or return it :)

get_print()

>>> <function print>
于 2013-01-07T21:38:38.887 に答える
2

printは関数ではなく、予約語*であるため、Python2.7ではこれは不可能です。次のように簡単に関数を作成できます。

def printf(x):
  print x

そして、あなたはあなたが望むことをすることができます:

return (printf(True))

ただし、名前の変更を行う必要があります。

*これは、Python3でよりエレガントに解決されたものの1つです。

于 2013-01-07T21:35:27.650 に答える
0

print、Python 2の関数ではなくステートメントであるため、この方法では使用できません。むしろ、これを行う必要があります。

from __future__ import print_function
def foo():
    return print(True)
foo()
于 2013-01-07T21:39:47.153 に答える