Python “的含义;如果x==”#&引用;或不是x:“;
所以我在阅读一些代码,我遇到了这个语句。在本例中,“x”是用户输入,所以我假设它是某种形式的验证,但它做什么呢?x==不是x没有任何意义,“#”是什么意思 下面是令人不快的代码块:Python “的含义;如果x==”#&引用;或不是x:“;,python,esri,Python,Esri,所以我在阅读一些代码,我遇到了这个语句。在本例中,“x”是用户输入,所以我假设它是某种形式的验证,但它做什么呢?x==不是x没有任何意义,“#”是什么意思 下面是令人不快的代码块: def main(*argv): try: #Get FC and Fields inputFC = arcpy.GetParameterAsText(0) if inputFC =="#" or not inputFC: inputFC = "Tooldata\\Input
def main(*argv):
try:
#Get FC and Fields
inputFC = arcpy.GetParameterAsText(0)
if inputFC =="#" or not inputFC:
inputFC = "Tooldata\\InputFC" # provide a default value if unspecified
inputFC==“#”或not inputFC
是一个包含两部分的布尔表达式:
inputFC==“#”
–检查inputFC
是否等于字符串“#”
not inputFC
–检查inputFC
是否为非真,这意味着它不是空的(即空的)使用
或运算符组合这两个条件,因此只需匹配一个条件即可使整个表达式的计算结果为true。将其读取为if(x==y)或not x
,而不是if x==(y或not x)
。基本上,如果输入是磅/哈希符号或输入为null(Python中无),然后,条件将计算trueas@Kevin指出的值,它首先测试输入是否为散列,如果不是,则测试or的另一端,以查看其中是否没有任何内容。为了提高效率,这两个测试实际上应该颠倒,特别是如果你有一个很长的ors链的话。测试inputFC是否为“#”,如果它首先是空的,则没有意义。@rfj001,它不仅仅是None
它是任何虚假的值,如空字符串、列表等。@padraiccnningham-Oh-true。忘记了在python中空字符串的计算结果为False不意味着它是空的吗?没问题。为了以防万一,我不得不把它说成一个问题。当试图解释双重否定时,尤其是在或/和类型上下文中,双重否定常常会令人困惑:)