4

Python には複雑な名前空間とモジュールの概念があるため、これについてはよくわかりません。通常、pythonmoduleとそこからインポートされたものは異なる名前を持つか、モジュールのみがインポートされ、そのコンテンツは完全修飾名で使用されます。

import copy # will use copy.copy
from time import localtime # "localtime" has different name from "time".

しかし、モジュールがそこからインポートしているものと同じ名前を持っている場合はどうなりますか? 例えば:

from copy import copy
copy( "something" )

安全ですか?多分それは私が見ることができないいくつかの複雑な結果ですか?

4

1 に答える 1

4

PEP8 から ( http://www.python.org/dev/peps/pep-0008/#imports ):

クラスを含むモジュールからクラスをインポートする場合、通常は次のように綴っても問題ありません。

from myclass import MyClass
from foo.bar.yourclass import YourClass

このスペルがローカル名の衝突を引き起こす場合は、それらをスペルします

import myclass
import foo.bar.yourclass

「myclass.MyClass」と「foo.bar.yourclass.YourClass」を使用します。

于 2012-08-21T09:25:24.620 に答える