将函数结果放入字典中

时间:2016-08-18 15:19:18

标签: python function dictionary global

我想将函数结果放入另一个函数(cert_register_excel_sheet_populator())中的字典(columns_categories_dict)中,如下所示:

def value(category, row):
    return spreadsheet_defaultdict[str(category)][row - 1].strip()

def cert_register_excel_sheet_populator():
    columns_categories_dict = {
                        'A':value("Policy Number", row),
                        'C':" ".join(value("Policyholder", row).split(", ")[::-1]),
                        'D':value("Vehicle Reg. Number", row),
                        'E':custom_strftime('{S} %B, %Y', renewal_date) + ' - ' + custom_strftime('{S} %B, %Y', expiry_date),
                        'F':datetime.datetime.now().strftime('%d/%m/%Y')
                        }

但是我收到了这个错误:

  Traceback (most recent call last):
  File "C:\Users\Millar\Desktop\Python Sandbox\Prem Calc to Motor Cert Populator\Sagicor Tickertapes, Motor Certs.py", line 387, in <module>
    cert_register_excel_sheet_populator()
  File "C:\Users\Millar\Desktop\Python Sandbox\Prem Calc to Motor Cert Populator\Sagicor Tickertapes, Motor Certs.py", line 320, in cert_register_excel_sheet_populator
   'A':value("Policy Number", row),
UnboundLocalError: local variable 'value' referenced before assignment

我尝试将值设为全局值,然后将原始值函数转换为字符串。我可能会找到一个解决方法并使用循环来填充我的字典,但是有更优雅的解决方案吗?

更新:我创建了以下简单代码来演示我的问题。代码有效。

def first_function():
    return print("I am working")

def second_function():
    columns_categories_dict = {
                        'A':first_function(),
                        'B':'wow',
                        'C':print("third value")
                        }
second_function()

打印出来:

========= RESTART: Desktop/function conflict test.py =========
I am working
third value

我搜索了我的代码,看看我是否将值用作变量,而且我没有......

0 个答案:

没有答案