使用条件语句设置python变量
我遇到了这行代码使用条件语句设置python变量,python,Python,我遇到了这行代码 ax = ax or plt.gca() 这里是29号线 这个表达式到底是如何工作的 ax将假定ax和plt.gca()的结果之间的或操作的结果 有关详细信息,请参阅 解释 您可以将第29行理解为向ax, 如果ax作为函数参数传递(因此它不是None),传递的值将分配给ax, 否则(ax为无)plt.gca()将分配给ax 因为None或plt.gca()的结果是plt.gca()它将返回的任何内容 您可以将第29行视为:ax=ax,如果ax不是其他plt.gca()ax将
ax = ax or plt.gca()
这里是29号线
这个表达式到底是如何工作的
ax
将假定ax
和plt.gca()的结果之间的或操作的结果
有关详细信息,请参阅
解释
您可以将第29行理解为向ax
,
如果ax
作为函数参数传递(因此它不是None
),传递的值将分配给ax
,
否则(ax
为无)plt.gca()
将分配给ax
因为None或plt.gca()
的结果是plt.gca()
它将返回的任何内容
您可以将第29行视为:ax=ax,如果ax不是其他plt.gca()
ax
将假定ax
和plt.gca()的结果之间的或操作的结果
有关详细信息,请参阅
解释
您可以将第29行理解为向ax
,
如果ax
作为函数参数传递(因此它不是None
),传递的值将分配给ax
,
否则(ax
为无)plt.gca()
将分配给ax
因为None或plt.gca()
的结果是plt.gca()
它将返回的任何内容
您可以将第29行视为:ax=ax,如果ax不是其他plt.gca()
在您引用的代码范围内,ax
是默认为None
的函数参数
def get_text_position(text, ax=None): #28
ax = ax or plt.gca() #29
[...] #30
将ax或plt.gca()
分配给ax
是为了确保ax
的值在剩余的功能范围内不None
。如果使用ax
参数的非None
值调用函数,则该行无效,因为对右侧表达式的求值在或
处停止,其左操作数不是None
已经满足了这一要求。
如果没有ax
参数被传递给函数,或者如果它被显式设置为None
,则对ax或plt.gca()
的求值会导致后者的返回值,因为ax
为None
,不满足表达式的要求,因此或后面的余数必须包含在内。指示在本例中第29行中调用的方法将确保返回none null对象
长话短说,或
运算符不仅适用于布尔操作数,而且适用于无
和非
无
值,就像您所指代码范围内的假
和真
一样,ax
是一个默认为None
的函数参数
def get_text_position(text, ax=None): #28
ax = ax or plt.gca() #29
[...] #30
将ax或plt.gca()
分配给ax
是为了确保ax
的值在剩余的功能范围内不None
。如果使用ax
参数的非None
值调用函数,则该行无效,因为对右侧表达式的求值在或
处停止,其左操作数不是None
已经满足了这一要求。
如果没有ax
参数被传递给函数,或者如果它被显式设置为None
,则对ax或plt.gca()
的求值会导致后者的返回值,因为ax
为None
,不满足表达式的要求,因此或后面的余数必须包含在内。指示在本例中第29行中调用的方法将确保返回none null对象
长话短说,或
运算符不仅适用于布尔操作数,而且对无
和非无
值的作用方式与对假
和真的作用方式相同。如果第一个操作数的计算结果为真
,则表达式的计算结果为第一个操作数:
>>> True or "second"
True
>>> "first" or "second"
"first"
如果第一个操作数的计算结果为False
,则表达式的计算结果为第二个操作数:
>>> False or "second"
"second"
>>> 0 or "second"
"second"
>>> None or "second"
"second"
以下是一些计算结果与False
相同的值:
False
0
None
""
[]
{}
因此,在这一行中:
ax or plt.gca()
如果ax
为None
,则表达式计算为第二个操作数plt.gca()
如果第一个操作数的计算结果为True
,则表达式的计算结果为第一个操作数:
>>> True or "second"
True
>>> "first" or "second"
"first"
如果第一个操作数的计算结果为False
,则表达式的计算结果为第二个操作数:
>>> False or "second"
"second"
>>> 0 or "second"
"second"
>>> None or "second"
"second"
以下是一些计算结果与False
相同的值:
False
0
None
""
[]
{}
因此,在这一行中:
ax or plt.gca()
如果ax
为None
,则表达式计算为第二个操作数plt.gca()
关于Python或
操作符的工作原理,有很多教程。谷歌“python或operator.”可能重复了很多关于python或operator如何工作的教程。谷歌“python或operator.”可能与