Python では、すべてがオブジェクトであり、簡単に渡すことができます。
だから私はできる:
>> def b():
....print "b"
>> a = b
>> a()
b
でももしそうなら
a = print
私は得るSyntaxError
。なんでそうなの ?
Python では、すべてがオブジェクトであり、簡単に渡すことができます。
だから私はできる:
>> def b():
....print "b"
>> a = b
>> a()
b
でももしそうなら
a = print
私は得るSyntaxError
。なんでそうなの ?
Python 2.xでは、printは関数ではなくステートメントです。2.6以降では、を使用して特定のモジュール内の関数にすることができますfrom __future__ import print_function
。Python 3.xでは、これは渡すことができる関数です。
python2では、print
はステートメントです。あなたがそうするならばfrom __future__ import print_function
、あなたはあなたが説明したようにすることができます。python3では、printが関数になっているため、試したものはインポートなしで機能します。
他の答えは正しいです。 print
はステートメントであり、python2.x の関数ではありません。あなたが持っているものはpython3で動作します。追加しなければならない唯一のことは、python2 と python3 で動作するものが必要な場合は、sys.stdout.write
. これは ( とは異なりprint
) 改行を書き込みません。他のファイル オブジェクトと同じように動作します。
print
3.x以前のPythonの関数ではありません。それは1つのようにも見えません、あなたはそれを呼び出す必要はありません(params)