Python类函数作为字典条目

Python类函数作为字典条目,python,dictionary,Python,Dictionary,我正在编写一个python脚本来生成给定MySQL查询的Tableau数据提取(.tde)文件 将一行写入.tde需要使用集合(列号,列值)功能分别写入每一列。例如,将整数3写入行中的第二列类似于row.setInteger(1,3)。将单词“Bob”写入行中的第四列类似于row.setCharString(3,“Bob”) 在迭代列时,我希望根据列类型调用正确的set()函数。我将这些函数保存在字典中: tde_set_type_function_map = { Type.DATE:

我正在编写一个python脚本来生成给定MySQL查询的Tableau数据提取(.tde)文件

将一行写入
.tde
需要使用
集合(列号,列值)
功能分别写入每一列。例如,将整数3写入行中的第二列类似于
row.setInteger(1,3)
。将单词“Bob”写入行中的第四列类似于
row.setCharString(3,“Bob”)

在迭代列时,我希望根据列类型调用正确的
set()
函数。我将这些函数保存在字典中:

tde_set_type_function_map = {
    Type.DATE: Row.setDate,
    Type.DATETIME: Row.setDateTime,
    Type.DOUBLE: Row.setDouble,
    Type.CHAR_STRING: Row.setCharString,
    Type.INTEGER: Row.setInteger,
}


我以前在字典中使用过函数,但在它们属于对象时从未使用过。有正确的方法吗?

但是您没有使用字典中的函数;这是分配给变量setType的,但是您使用的是tde_行的setType属性,它完全不相关。如何使用dictionary中的函数而不是不相关、不存在的SetType属性?只需像调用其他函数一样调用它:
SetType(tde_行)
.duh。我尝试了
setType(self=tde\u row,colno,col)
,但是Python不喜欢
self=
。谢谢你想创建一个答案,我会接受吗?或者我应该删除问题…但您没有使用字典中的函数;这是分配给变量setType的,但是您使用的是tde_行的setType属性,它完全不相关。如何使用dictionary中的函数而不是不相关、不存在的SetType属性?只需像调用其他函数一样调用它:
SetType(tde_行)
.duh。我尝试了
setType(self=tde\u row,colno,col)
,但是Python不喜欢
self=
。谢谢你想创建一个答案,我会接受吗?或者我应该删除问题。。。
for row in mysql:
      # Create new row
    tde_row = Row(table_def)   # Pass the table definition to the constructor
    for colno, col in enumerate(row):
        col_type = table_def.getColumnType(colno)
        setType = tde_set_type_function_map[col_type]
        print setType # e.g. <unbound method Row.setCharString>
        print type(setType) # e.g. <type 'instancemethod'>
        tde_row.setType(colno, col)
    tde_table.insert(tde_row)
AttributeError: 'Row' object has no attribute 'setType'