背景
在主文件中,我迭代了几个案例。对于每种情况,我都必须初始化大量的参数,例如
for i in range(10):
zP1HHSet, zH1HHSet, zISHHSet, zEEHHSet = [], [], [], []
dP1HHSet, dH1HHSet, dISHHSet, dEEHHSet = [], [], [], []
mP1HHSet, mH1HHSet, mISHHSet, mEEHHSet = [], [], [], []
nP1HHSet, nH1HHSet, nISHHSet, nEEHHSet = [], [], [], []
kP1HHSet, kH1HHSet, kISHHSet, kEEHHSet = [], [], [], []
tP1HHSet, tH1HHSet, tISHHSet, tEEHHSet = [], [], [], []
a_IS = 0
b_IS = 10401
and so on
这是我每次运行都需要初始化的一小部分参数。你知道吗
问题
我想做的是写一个函数,比如foo:
def foo(case):
zP1HHSet, zH1HHSet, zISHHSet, zEEHHSet = [], [], [], []
dP1HHSet, dH1HHSet, dISHHSet, dEEHHSet = [], [], [], []
mP1HHSet, mH1HHSet, mISHHSet, mEEHHSet = [], [], [], []
nP1HHSet, nH1HHSet, nISHHSet, nEEHHSet = [], [], [], []
kP1HHSet, kH1HHSet, kISHHSet, kEEHHSet = [], [], [], []
tP1HHSet, tH1HHSet, tISHHSet, tEEHHSet = [], [], [], []
我知道的一个选项是逐个返回所有变量,然后在主文件中解压它们。 有没有更好的办法来处理这个问题?你知道吗
问题
如何导入大量变量?简而言之,我想通过将这组行传输到另一个文件来减小主代码的大小。你知道吗
您可以直接在全局/局部符号表上工作 例如
如果您的参数有一个结构(在您的示例中似乎是这样),那么最好以结构化的方式存储它们,而不是将它们“扁平”地存储为一堆变量。这个结构可以很容易地由函数返回或作为参数传递。在Python中构建结构有很多不同的选项(列表、dict、namedTuples、数据类、simpleNamespaces等等)。使用
SimpleNamespace
和NamedTuple
的一种可能的解决方案如下所示:请注意,这只适用于足够新的Python版本。使用
NamedTuple
和SimpleNamespace
的优点是可以使用方便的属性语法(例如p.z.P1HHSet
)而不是dict(例如p["z"]["P1HHSet"]
)或index(例如p[0][0]
)语法来访问各个参数。你知道吗这能回答你的问题吗?你知道吗
你可以把所有的变量放在一个单独的文件中,比如说'Auxilary'_函数.py'. 在主文件中,可以使用*导入所有变量。档案辅助_函数.py'应与'主.py'. 你知道吗
在'主.py“你可以这样做。你知道吗
相关问题 更多 >
编程相关推荐