def key(): print 'key'
def val(): print 'val'

{key() : val()}

打印val, key,即首先评估该值。这是行为吗
  • 在python版本和实现中是否一致?
  • 记录在任何地方? (http://docs.python.org/2/reference/expressions.html#dictionary-displays什么也没说)
  • 最佳答案

    引用手册的此部分记录了该顺序,但声称与您所看到的不同:http://docs.python.org/2/reference/expressions.html#evaluation-order


    expr1, expr2, expr3, expr4
    (expr1, expr2, expr3, expr4)
    {expr1: expr2, expr3: expr4}
    expr1 + expr2 * (expr3 - expr4)
    expr1(expr2, expr3, *expr4, **expr5)
    expr3, expr4 = expr1, expr2
    

    并且有一个针对该实现的 Unresolved 错误:Evaluation order of dictionary display is different from reference manual

    关于python - 字典文字的评估顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15681054/

    10-14 17:36