我正在尝试学习Python语言,并尝试与某人合作开展项目,以便更好地理解它。
现在我的合作伙伴编写了以下代码,但是当我在PyCharm中加载项目时,它会以红色突出显示代码,并且输出也没有显示它应该做什么。< / p>
所以我有这段代码:
class account_fiscal_position(osv.osv):
_name = 'account.fiscal.position'
_inherit = 'account.fiscal.position'
MAP_BTW_REGIME_KLANT_TOPACCOUNT = [(1, 'L3'),
(2, 'C'),
(3, 'I'),
(4, 'E')]
def map_for_topaccount_customer_export(self, id, context=None):
return "L3" if not id else MAP_BTW_REGIME_KLANT_TOPACCOUNT[id]
如果没有要显示的ID,它应该返回L3,下面的部分用红色加下划线并且似乎在我的控制台中不起作用:
MAP_BTW_REGIME_KLANT_TOPACCOUNT [ID]
知道为什么吗?非常感谢并抱歉这个虚无问题
答案 0 :(得分:2)
您在MAP_BTW_REGIME_KLANT_TOPACCOUNT
中定义的是对的列表,而不是&#34;地图&#34;。
您可以将dict
放在dict()
周围,将其设为MAP_BTW_REGIME_KLANT_TOPACCOUNT = dict([(1, 'L3'), (2, 'C'), (3, 'I'), (4, 'E')])
:
MAP_BTW_REGIME_KLANT_TOPACCOUNT = {1: 'L3', 2: 'C', 3: 'I', 4: 'E'}
或者(正如@jonrsharpe指出的那样)可以通过直接定义字典来更简单地完成:
{{1}}
答案 1 :(得分:1)
MAP_BTW_REGIME_KLANT_TOPACCOUNT
不是地图,它是一个关联列表。要将其制作成地图,您可以将其定义为
MAP_BTW_REGIME_KLANT_TOPACCOUNT = dict([
(1, 'L3'),
(2, 'C'),
(3, 'I'),
(4, 'E')
])
但是当你在这里时,你也可以直接把它变成一张地图:
MAP_BTW_REGIME_KLANT_TOPACCOUNT = {
1: 'L3',
2: 'C',
3: 'I',
4: 'E'
}