存储功能列表的最佳方法是什么?

时间:2016-08-31 21:37:52

标签: python

我需要在Python中存储大量的函数规则(大约100000),以便在......之后使用....

def rule1(x,y) :...
def rule2(x,y): ...

将这些功能规则实例存储到Python结构中的最佳方法是什么?

使用Numpy dtype = np.object数组怎么样? (当它们变得太大时列表很糟糕......)

主要目标是在内存中存储时以最快和最小的内存占用。

由于

2 个答案:

答案 0 :(得分:2)

函数是Python中的第一类对象 - 您可以像存储任何其他变量或值一样存储它们:

def a():
  pass

def b():
  pass

funcs = [a,b]
funcs[0]() # calls `a()`.

答案 1 :(得分:1)

当您使用这些规则时,您将不得不以某种方式引用它们 。如果您的示例是命名约定的提示,那么请使用列表。通过map或循环,可以轻松地按顺序调用它们。

rules = [rule1, rule2, ...]
for fn in rules:
    fn(arg1, arg2)  # this calls rule1 and rule2 with args (as an example)

如果您也可以按名称引用它们,请使用dict,例如:

rules = {'rule1': rule1, 'rule2': rule2, ...}
something = rules['rule5'](arg1, arg2)
# or
for rule in rules:  # iterates over the dict's keys
    rules[rule](arg1, arg2)