Python 将函数结果放入字典
我想将函数结果放入另一个函数(cert\u register\u excel\u sheet\u populator())中的字典(columns\u categories\u dict),如下所示:Python 将函数结果放入字典,python,function,dictionary,global,Python,Function,Dictionary,Global,我想将函数结果放入另一个函数(cert\u register\u excel\u sheet\u populator())中的字典(columns\u categories\u dict),如下所示: def value(category, row): return spreadsheet_defaultdict[str(category)][row - 1].strip() def cert_register_excel_sheet_populator(): columns_
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
以及打印件:
========= RESTART: Desktop/function conflict test.py =========
I am working
third value
我搜索了我的代码,看看我是否使用值作为变量,但我没有…我看不到您在哪里为
行
赋值。理论上,如果我们排除@Matt正确指出的内容,您的脚本看起来很好。问题是Python为什么认为值
是一个变量。。。或者这是一个打字错误?如果我是Python解释器,我会说局部变量'row'引用…
对不起,row的值通常是通过循环输入的。我正在为它们添加额外的功能。我已经将这些函数从代码中分离出来,问题是如何将函数结果放入字典中。Python认为value是一个变量,而实际上它是一个函数……它不可能是。尝试一个包含两个函数的简单示例,您将看到。暂时忘掉你复杂的代码。看看这个:我看不出你在哪里给行
赋值。理论上,如果我们排除@Matt正确指出的内容,你的脚本看起来很好。问题是为什么Python认为值
是一个变量。。。或者这是一个打字错误?如果我是Python解释器,我会说局部变量'row'引用…
对不起,row的值通常是通过循环输入的。我正在为它们添加额外的功能。我已经将这些函数从代码中分离出来,问题是如何将函数结果放入字典中。Python认为value是一个变量,而实际上它是一个函数……它不可能是。尝试一个包含两个函数的简单示例,您将看到。暂时忘掉你复杂的代码。看看这个:
========= RESTART: Desktop/function conflict test.py =========
I am working
third value