或无是什么意思?

时间:2020-05-13 11:53:18

标签: python

在我正在研究的项目中,我找到了以下代码:

official = bill.official and employees.loadById(bill.official) or None

or None的意义是什么?我认为它没有任何改变。

3 个答案:

答案 0 :(得分:1)

official = bill.official and employees.loadById(bill.official) or None


对于上述声明,如果bill.officialemployees.loadById(bill.official)都为true,则官方变量值为True

如果bill.officialemployees.loadById(bill.official)的值为False,则官方变量值为None

答案 1 :(得分:1)

这与变量的真值有关。

没有or None的情况下,如果bill.officialemployees.loadById(bill.official)的真值均为False,则official变量将具有第一个Falsy变量的值他们。

对于or None,效果是:

=>如果bill.officialemployees.loadById(bill.official)均为真实值,则将employees.loadById(bill.official)分配给official

=>否则,将None分配给official

请参见Truth Value Testing - Python Docs来找出哪些值具有阈值。

答案 2 :(得分:0)

如果employees.loadById(bill.official)bill.official均为True或不是None时,它将返回employees.loadById(bill.official)的值,但是如果其中1个或多个为None或False则返回None。希望有道理。

示例:

a = 1
b = 2
a and b or None
Out[26]: 2
b and a or None
Out[27]: 1
a = None
b and a or None
a and b or None