2016-08-03 5 views
0

私はいつもJupyterが単にオブジェクトのreprを印刷したと思っていましたが、そうではありません。Jupyterノートブックの評価中にどうなりますか?

ここは例です。私はノートパソコンでこれを評価する場合:

obj = type(2) 
obj 

私はちょうど得る:intを。

私が代わりに

print(obj) 

をすれば私が取得:<class 'int'>

So:変数の評価中にノートブックの動作をシミュレートするPythonの命令は何ですか?

+0

あなたはJupyterがオープンソースであることをご存じでしょうか? –

+0

これは変数を評価することとは無関係です。変数を表現するだけです。あなたの質問が表現を*複製する方法に関するものであれば、Jupyterがその表現をどのように実装するかを調べるか、必要な表現を指定する必要があります。そのクラス名で表される型を持つ。 – MisterMiyagi

+0

これは多分でしょうか? http://stackoverflow.com/questions/1436703/difference-between-str-and-repr-in-python –

答えて

1

Jupyter/IPythonは、かなり複雑なpretty printerを使用しています。あなたの例はintで、printer for classes/typeです。

基本的にそれが何をするかは、それがcls.__module__経由cls.__qualname__(PY3)またはcls.__name__(PY2 & 3)及びモジュールを介して、クラスの名前を取得し、<module.name>としてそれらを印刷しています。組み込み関数の場合、モジュール名は暗黙のうちに無視されます。

関連する問題