使用地图返回特定的内容

时间:2014-12-03 11:52:40

标签: python map

我正在尝试学习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]

知道为什么吗?非常感谢并抱歉这个虚无问题

2 个答案:

答案 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'
}