哪个更好?使用if/else或dictionary的更好的优化技巧
- 一系列接收'string'的if/else语句为其返回相应的函数。 (大约40-50条if/else语句)。
- 维护键值对的字典。键作为字符串,值作为函数对象,以及一个用于搜索和返回函数对象的主函数。
实际上使用上述方法返回函数对象的主函数被称为数百万或数十亿次,所以需要智能地做到这一点。有什么更好的办法?
例如,
dict['str1'] = func1
dict['str2'] = func2
and so on..
def main_func(str):
return dict[str]
或者
def main_func(str):
if 'str1':
return func1
elif 'str2':
return func2
这将是更好的..?如果我们有50-60个这样的字符串,并且这个过程需要数十亿次。
存储内部词典功能对象,在函数本身: -
def func1():
if dict.has_key('str1'):
dict['str1'] = func1
-- do something --
哪个更好,这或上述之一。这看起来更干净。但请记住,这些函数会被调用很多次,所以has_key函数也会被多次调用。
感谢
写入和** **他们**。 – huon 2012-07-12 05:01:07
我与字典一起去,而不是首先检查键是否在字典中只是有一个函数来执行需要做的事情,如果字符串丢失并返回dict.get(string,string_missing_function) – Paddy3118 2012-07-12 06:34:19
好的调用!每天都要学习新的东西,我已经将自己的想法融入了我的文章。这开始显示function_lookup甚至不需要定义! – 2012-07-12 06:39:08