佐藤です。

At Thu, 13 Jul 2000 18:16:26 +0900,
Minero Aoki wrote:
> 将来 module に入れるものがたくさん出てきて、何も考えずにそういうのを
> 複数 include した時に意図せず重なってしまう場合が出てくるんでないか、
> というのがぼくの懸念です。

pythonについて調べた際に同じような話が出てきてます。
意味ないでしょうが実例。

#test1.py
def huga(a):
    print ("t1: huga %s" % a)
    
def hoge(b):
    print ("t2: hoge %s" % b)

   
#test2.py
def huga(a):
    print ("t2: huga %s" % a)
    
def foo(b):
    print ("t2: foo %s" % b)

#test.py
from test1 import *
from test2 import *

huga("hogege")

ご覧の通り、test1.py/test2.pyではhuga()が重複してます。
これらを同じディレクトリに置いて、
% python test.py 
t2: huga hogege

importの順番をtest2->test1にしてみると
% python test.py 
t1: huga hogege

javaは厳密にチェックしてたようですが、pythonでは現在の名前空間に既存のも
のがあったとしても、上書きしちゃうのですね。
おおらかな仕様。ですね。

だからって、

import test1
import test2

huga("hogege")

にしちゃうとエラーでして、やはりtest1.huga()という形で呼ばないといけません。
個人的には引数の違いが無い場合はやはりjava並みにエラーを出してもらいたい
ところです。
-- 
みらいちゃんを愛する人に悪い人はいません(c)おかのまりも
「みらいちゃん」って誰?な方は http://www.wdic.org で検索だだだ

佐藤 大輔/densuke / ga2.so-net.ne.jp