ファイルcommon.py
をcopyPasteAnywhereTest.py
ファイルにインポートしました。 common.py
には、現在のファイルから呼び出す必要があるいくつかの一般的な関数が定義されています。 copyPasteAnywhereTest.py
。しかし、私が両方のファイルで定義した特定の関数copyText()
があります。デフォルトではからcommon.py
が呼び出されています。インポートしたファイルで定義したものではなく、ローカルで定義した関数を呼び出す必要があります。これは私がimport common
またはfrom common import functionName
Python:インポートされたモジュールに同じ名前の関数がある場合にローカル関数を呼び出す
common.py
から
copyPasteAnywhereTest.py
#copyPasteAnywhereTest.py
import os
import sys
sys.path.append(os.path.abspath("../z_common/"))
import common
def main():
#some code
copyText() #Calling the copyText() function
def copyText():
#Code here.
copyText()
が呼び出されたスクリプトファイルです
これは一つのファイルcommon.py
#common.py
def copyText():
#Function definition
#Some more functions defined in this file.
:以下のコードは、のようなものです
最も簡単な解決策は、 copyText()
の名前はcopyPasteAnywhereTest.py
にあり、同じものを呼び出します。しかし、私は適切な解決法を知りたいのであり、回避策ではありません。
だけ明確にするために、私はfrom module import function
構文を使用している間にもcopyPasteAnywhereTest.py
でcopyText()
機能(すなわち、from common import copyText
)以前の輸入had't。私はちょうどfrom common import *functionName*
を使用して必要な機能をインポートしました。
P.S. - 私はPythonにはかなり新しいです。質問が愚かなものかどうか気にしないでください。私はインターネットでグーグルと検索を試みましたが、答えを見つけることができませんでした。したがって、質問。
@BlackBear:私はそれを使用して特定のものにしました。私は 'copyText()'をインポートしたくありませんでした。ありがとう。あなたのことを覚えておいてください。 –
これは再現できません。あなたの問題を示す簡単な[mcve]を投稿してください。 –
'from common import functionName'は** functionNameだけをインポートします**他の名前は' common'モジュールからインポートしません。特に、 'common'から' copyText'をインポートしません。そしてあなたが 'common import copyText'を持っていてスクリプトの後ろに' def copyText(): 'がある場合、' copyText'という名前はあなたのローカル関数にバインドされます。しかし、 'def copyText():' _before_を 'common import copyText'から行うと(あなたはすべきではありません)、' copyText'という名前は 'common'からインポートされた関数にバインドされます。 –