是bool =(布尔表达式)Pythonic形式的语句吗?

时间:2012-03-26 11:45:40

标签: python

采取以下代码

is_valid = command == "B"

can_move = move in legal_moves()

这些格式为

bool = (boolean expression)

我发现自己写了这样的陈述,我想知道它是否在某种程度上被认为是“unpythonic”。我不太确定我非常喜欢它,但它很简洁。

所以任何人都有更清洁的选择吗?

3 个答案:

答案 0 :(得分:5)

你有什么,大多数人会认为很好。很明显,它很简洁,它完全符合它的需要。标准库还包含大量的例子。

答案 1 :(得分:2)

似乎很好,

  1. 标准库和文档也使用此

  2. 我没有发现任何PEP明确建议替代

  3. PEP 308引入了表单

    的条件表达式
    var = val1 if condition else val2
    

    至少隐含地鼓励内联布尔赋值。和

    bool = (boolean expression)
    

    相当于,但更简洁为

    bool = True if (boolean expression) else False
    

答案 2 :(得分:0)

这很好。当然,如果你只测试一次,你可能根本不需要分配一个变量(当然,除非你需要在状态变化之前进行测试)。