• ベストアンサー

pythonのimport の考え方 importと合わせて覚える事柄?

python素人です。 いまいち、importの感覚がつかめていないのですが import aaaとした場合、使うときはaaa.function_nameとなりますが、クラスの場合はaaa.class_nameとなるのは何かカッコ悪く感じます。 素直に、class_nameで使えないのでしょうか? import aaa b = aaa.AAA() # aaa.py class AAA: a = 0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

当方Pythonに詳しいわけではありませんが、道具としては使っているのでお答えします。 from aaa import AAA とすれば、ご希望のようにAAAをそのままの名前で使えます。 ただ、やり過ぎには注意が必要です。 他のパッケージから色々インポートしていると、関数やオブジェクトの名前がたまたま被ってしまうことがあります。Pythonに限らず、こういう名前の衝突は常に起こりえます。この衝突を避けるために、パッケージ名で名前空間を分割しているのです。 Pythonの基本的な哲学として「できるかぎり明示する」というものがあります。クラスメソッドの定義なんかが代表例ですね。 class hoge:  __init__(self):   self.x = 0   self.y = 0 h = hoge() というように、呼び出されるときには引数として指定しないものの、定義時にはオブジェクトを第一引数として記述する必要がありました。 パッケージ名の明示もこの一環と考えると良いと思いますよ。 名前の衝突による事故を防ぐために、多少面倒でもパッケージ名を明示していると思えば、いくぶん厄介でもまあ納得できるのではないでしょうか。