我有一个现有的python(pythonv2.7)应用程序,它可以动态导入外部py文件,其中包含专门命名的类来处理数据。加载的外部py文件是根据所需数据的后处理类型选择的。在
所以我有这些类的集合,每个类都在各自的文件中。文件根据处理类型以特定的方式命名,这样主程序就知道从上游请求导入什么文件。在
请记住,我和其他人总是在调整这些类文件,但我们不能更改主应用程序上的代码。在
我想做的是将通用函数的“模板”导入到类作用域中,这样可以提供主程序所需的标准控件集,而无需将它们复制/粘贴到每个文件中。我讨厌当我发现一个错误并在其中一个主类I/o函数中进行更正,然后我不得不在其他30多个文件中复制这个函数。在
现在,我从谷歌上了解到,我在这里的进口不好。。。我得到的信息是:TestClassFile.py:5: SyntaxWarning: import * only allowed at module level
但是这个方法是我发现的导入函数以便它们进入类本身的名称空间的唯一方法。我下面有一个例子。。。在
在Python中,什么方法(如果有的话)是正确的方法?在
示例
在主.py在
^{pr2}$
在测试类文件.py在class TestClass:
from TestClassImport import *
def __init__(self, str):
print "INIT! and be ... ", str
def funcA(self):
print "Function A"
在测试分类导入.py在def funcB(self):
print "Function B"
非常感谢!在
更新
非常感谢大家的贡献。通过对mixin的研究,这些似乎是扩展类的适当python方法。在
在测试分类导入.py在class ImportClass:
def funcB(self):
print "Function B"
在测试类文件.py在from TestClassImport import ImportClass
class TestClass(ImportClass):
def __init__(self, str):
print "INIT! and be ... ", str
def funcA(self):
print "Function A"