3

このモジュールを使用して、Pythonでいくつかの変数をチェックアウトしようとしていpprintます。これは、インタラクティブシェルと以下のコードを使用して問題なく実行できます。

import pprint
pp = pprint.PrettyPrinter()
stuff = ['cakes','bread','mead']
pp.pprint(stuff)

ただし、上記を挿入pprint.pyして使用するpython pprint.pyと、次のエラーが発生します。

$ python dev/pars/pprint.py 
Traceback (most recent call last):
  File "dev/pars/pprint.py", line 1, in ?
    import pprint
  File "/home/origina2/dev/pars/pprint.py", line 2, in ?
    pp = pprint.PrettyPrinter()
AttributeError: 'module' object has no attribute 'PrettyPrinter'

インタラクティブシェルと比較して、ファイルからPythonコードを実行するときにモジュールが呼び出される方法の違いは何ですか?

4

1 に答える 1

10

プログラムにpprint.pyという名前を付けたので、その行import pprintでそれ自体をインポートしようとします。成功しますが、 pprint.pyにはPrettyPrinterと呼ばれるものが含まれていません。

コードの名前を変更します。[そして、明確にするために、pprint.pycまたはpprint.pyoファイルを削除してください。]

于 2012-03-11T22:38:37.643 に答える