我想写一个代码,它接受文件名和类名,并对其进行操作。一个例子比我可能解释得更清楚:
我有一个文件test.py
,如下所示:
import pandas as pd
from preProcess import preProcess
from visualise import visualise
df=pd.read_csv('input.csv')
li1=["preProcess","visualise"]
li2=["minMax","pca"]
for i in range(len(li1)):
x = getattr(getattr(__import__(li1[i]),li1[i]), li2[i])
a=x(df)
# does some more stuff...
li1
包含模块的名称,li2
包含相应模块中类的名称。你知道吗
为了更清楚一点,preProcess.py
如下所示:
class minMax():
def __init__(df):
# does something
而visualise.py
是这样的:
class pca():
def __init__(df):
# does something
第x = getattr(getattr(__import__(li1[i]),li1[i]), li2[i])
行给出了类minMax
和pca
。你知道吗
现在的问题是,如果__init__
只接受一个参数,那么这段代码就可以很好地工作。但是,如果它需要1个以上的参数呢?例如,pca
可能是:
class pca():
def __init__(df,metaData):
# does something
在这种情况下我该怎么办?任何帮助都将不胜感激。你知道吗
如果问题不清楚,请发表评论。那么我会提供更详细的解释。谢谢。。。你知道吗
也许你应该使用扩展操作符。也许这个片段有帮助:
编辑:这只是一般方法的概述。有关此方法如何适用于此特定问题的更全面概述,请查看有关此答案的讨论。你知道吗
相关问题 更多 >
编程相关推荐