为什么此处的代码会创建一个未使用的变量`context`?

时间:2018-09-28 04:24:02

标签: odoo

https://github.com/odoo/odoo/blob/11.0/addons/sale/wizard/sale_make_invoice_advance.py#L79-L86

    context = {'lang': order.partner_id.lang}
    if self.advance_payment_method == 'percentage':
        amount = order.amount_untaxed * self.amount / 100
        name = _("Down payment of %s%%") % (self.amount,)
    else:
        amount = self.amount
        name = _('Down Payment')
    del context

我对Python非常熟悉,因此我认为上面的代码未使用context。我说得对吗?

1 个答案:

答案 0 :(得分:3)

在阅读https://github.com/odoo/odoo/blob/11.0/odoo/tools/translate.py#L387-L393上的代码之后

我发现答案是:underscore(_)函数将使用context.lang设置进行翻译。它将从调用堆栈中获取context的值。