Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更像蟒蛇的测试方法是“无”_Python - Fatal编程技术网

Python 更像蟒蛇的测试方法是“无”

Python 更像蟒蛇的测试方法是“无”,python,Python,测试变量==None的哪种方法更适合python 如果变量为: 或 如果var不是None ? 我个人更喜欢初级读物。但后者更为明确。 但是为了什么?初学者程序员-这应该在生产级软件中假设吗?如果var不是None,则使用明确检查: 理由 does_not_work = 0 if does_not_work: print("Works - is not none") else: print("Is None ... or not?") 看 简单测试检查真实性-不None如果

测试
变量==None
的哪种方法更适合python

如果变量为:

如果var不是None

?

我个人更喜欢初级读物。但后者更为明确。


但是为了什么?初学者程序员-这应该在生产级软件中假设吗?

如果var不是None,则使用
明确检查:

理由

does_not_work = 0

if does_not_work:
    print("Works - is not none")
else:
    print("Is None ... or not?")


简单测试检查真实性-不
None

如果
None
-真实性很重要,并且您可能会收到一个不应同等对待的错误值,您必须使用
不是None
。但如果你只是测试
None
与“其他一些保证真实的价值”的对比,那么这实际上是个人偏好


例如,当测试regex
.match
调用的结果时,如果matchobj:和
如果matchobj不是None:
都可以
match
对于失败的匹配或保证的truthy match对象返回
None
,因此这主要是个人风格的问题
if matchobj:
在显微镜下速度更快,但不足以有意义地衡量决策。

这些根本不是等价的陈述
if var:
将跳过除
None
-任何数字类型的零和空字符串或序列以外的许多值的执行。Python的理念是“显式优于隐式”,因此这几乎是Python式的。啊,见鬼,是的。如果不键入变量,这就是问题所在。在我的例子中,我看到的是一个
datetime
,如果一些
try-except
失败,它可能是空的。self注意-不要混合使用静态类型语言和python。@r.ook
如果某个变量是您的意思:
就可以了。@StevenRumbalski绝对可以了-只要您测试的是
bool
值。如果某个变量:,那么缩写形式
肯定有一些用例,但是在OP的情况下,
的显式测试不是None
可能会更有用。@El没有“Falsy”DateTime对象,所以您可以使用这两个对象。但对于整数、字符串、列表等,有falsy计算值,所以如果需要将它们区分为None和falsy,请不要在那里使用它。我上面的问题来自您提到的第一种情况,它是必须设置的datetime变量的错误处理,或者如果出现故障,则为None。