1

我正在尝试优化最初使用 namedtuples 和函数编写的代码来修改它们。对于同一 namedtuple 类型的各种值,每个函数都会被调用很多次。

基本示例是:

def modifyTuple(record):
  if record.field1 == True:
    record.field2 = "VALUE1"
  elif record.field3 == "SPECIAL":
    record.field2 = "VALUE2"

对我遇到的瓶颈的分析表明,每次调用函数时使用多个字典查找会导致时间损失。我现在正在尝试基于简单列表和从字段名称到字段索引的映射,使用检查和基本字符串替换来动态重写函数。

def modifyTuple(record):
  if record[0] == True:
    record[1] = "VALUE1"
  elif record[2] == "SPECIAL":
    record[3] = "VALUE2"

生成并使用此代码(我有一个返回修改后的转换函数的函数,在使用内部重新定义和编译之后exec)。它似乎运作良好,但我似乎无法找到一种方法来处理函数实际上是类方法的情况,因此有一个互补的“自我”论点。

应该如何处理?有任何想法吗 ?

4

0 回答 0