Python3.x在以下方面是否存在实质性差异:
for each_line in data_file:
if each_line.find(":") != -1:
#placeholder for code
#more placeholder
以及
^{pr2}$我的问题并不是针对上述用法,而是更一般或更重要的问题——即使结果相同,这种句法差异是否以不同的方式起作用?有逻辑上的区别吗?是否有更合适的任务,或者这仅仅是风格上的差异?如果这仅仅是一种风格,那么Python程序员认为哪一种更简洁?在
同样,上面的问题是否是相反的例子,询问is
和{not
时的is
是隐式的吗?在
据我所知, 从功能上讲,它们并不完全相同;如果你在与一个类进行比较,那么这个类可能有一个成员函数,
__ne__
,这是在使用比较运算符时调用的!=,与使用比较==时调用的__eq__
相反因此,在本例中,
not (a == b)
将调用a上的__eq__
,以b作为参数,然后not
结果(a != b)
将调用a上的__ne__
,参数为b。在我会使用第一种方法(使用!=)用于比较
第一个例子是如何测试
find
的结果。在你的第二个例子是做得太多了。它还对} 。在
each_line.find(":") == -1
表达式的结果执行boolean ^{在这种情况下,您想要使用
not
的地方是当您有可以测试真伪的东西时。例如,空字符串
''
的计算结果为False:您似乎将标识测试表达式}与布尔
is
和{not
相混淆。在关于如何执行身份测试的示例:
^{pr2}$调用不同的rich comparison方法取决于您使用的是}。在
==
还是{据我所知,对于所有内置类型,您将得到相同的结果,但理论上,对于某些用户定义的对象,它们可能有不同的实现。在
我将使用},因为这是一个操作而不是两个操作。在
!=
而不是not
和{相关问题 更多 >
编程相关推荐