Python:当导入的模块具有相同名称的函数时,调用本地函数

时间:2016-04-19 10:31:02

标签: python python-2.7 squish

我已将文件common.py导入copyPasteAnywhereTest.py文件。 common.py在其中定义了一些我需要在当前文件中调用的常用函数。 copyPasteAnywhereTest.py。但是我在两个文件中都定义了一个特定的函数copyText()。默认情况下,正在调用copyText()中的common.py。我想调用我在本地定义的函数,而不是我在导入文件中定义的函数。代码如下所示:

这是一个文件common.py

#common.py

def copyText():
    #Function definition

#Some more functions defined in this file.

这是脚本文件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是否使用import commonfrom common import functionName

导入

最简单的解决方案是更改copyText()copyPasteAnywhereTest.py的名称并调用相同的名称。但我想知道正确的解决方案,而不是解决方法。

为了清楚起见,我在使用copyText()语法时,甚至没有在copyPasteAnywhereTest.py(即from common import copyText)中导入from module import function函数。我刚刚使用from common import *functionName*导入了所需的函数。

P.S。 - 我对Python很新。如果问题是愚蠢的,请不要介意。我曾尝试使用谷歌搜索和搜索互联网,但我无法找到答案。因此,问题。

1 个答案:

答案 0 :(得分:2)

而不是像这样导入:

from common import copyText

DO

import common

并在您的代码中为它添加模块名称和一个点:

result = common.copyText()

通过仅导入模块,并使用点分表示法引用其内容,可以防止模块命名空间中出现这些名称冲突。