我需要在Python中存储大量的函数规则(大约100000),以便在......之后使用....
def rule1(x,y) :...
def rule2(x,y): ...
将这些功能规则实例存储到Python结构中的最佳方法是什么?
使用Numpy dtype = np.object数组怎么样? (当它们变得太大时列表很糟糕......)
主要目标是在内存中存储时以最快和最小的内存占用。
由于
答案 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)