REPL(またはPythonコンソールなど)の内部では、最後のステートメントから返された値が常に出力されます。それだけで価値あるならば値が出力されます:
>>> 1
1
それが割り当てている場合は、何も印刷されません。
>>> a = 1
しかし、この時計:
>>> a = 1
>>> a
1
を上記のコードでは、
>>> x=MyClass()
>>> x # I'm adding this :-). The number below may be different, it refers to a
# position in memory which is occupied by the variable x
<__main__.MyClass instance at 0x060100F8>
したがって、xの値はメモリ内のある場所にあるMyClassのインスタンスです。
>>> x.i
12345
x.iの値は12345なので、上記のように印刷されます。
>>> x.f
<bound method MyClass.f of <__main__.MyClass instance at 0x060100F8>>
fの値は、xの方法である(それはそれは何かの前でdef
を持っていることを意味するものだ、それは方法です)。さて、それは方法であることから、のはそれの後に()
を追加することで、それを呼ぶことにしましょう:
>>> x.f()
'hello world'
変数xにMyClassのインスタンス上のFメソッドによって返される値は「こんにちは、世界」です!ちょっと待って!引用符があります。さんがprint
機能を使って、それらを取り除くしてみましょう:
>>> print(x.f()) # this may be print x.f() (note the number of parens)
# based on different versions of Python.
hello world
徹底的な答えは良いものであり、時間の価値があります。 – cwallenpoole
ありがとう、@ cwallenpoole!それはそのような徹底的な返答です。私はあなたの明確な説明に本当に感謝しています。 – nlper
@niper - ちなみに、cwallenpooleの答えは(私の意見では)私よりもはるかに明確で、より徹底的な答えです。早くも投票してしまったのでちょうど私の権利をマークする必要性を感じないでください!どちらが最もあなたを「受け入れられる」ものとするかを記入してください。 :) –