Python 3.x之间存在实质性区别:
for each_line in data_file: if each_line.find(":") != -1: #placeholder for code #more placeholder
和
for each_line in data: if not each_line.find(":") == -1: #placeholder for code #more placeholder
我的问题不是上面的用法所独有,而是更笼统或必不可少的- 即使结果是相同的,这种语法差异是否以不同的方式起作用?有逻辑上的区别吗?有没有一项任务更合适,或者仅仅是风格上的差异?如果这仅仅是样式,那么Python程序员会认为哪一种更清洁?
另外,以上是否是询问is和之间有什么区别的相反实例==?前者是否像后者一样,在对象标识和对象值相等方面有所不同?在上面的示例中,我的意思是inis在使用not隐式吗?
is
==
not
据我了解,它们在功能上并不完全相同。如果要与类进行比较,则该类可能具有成员函数,__ne__该成员函数在使用比较运算符!=__eq__时被调用,而在使用比较==时被调用
__ne__
__eq__
因此,在这种情况下, not (a == b)将以__eq__b为参数调用a,然后not结果以b为参数 (a != b)调用__ne__a。
not (a == b)
(a != b)
我将使用第一种方法(使用!=)进行比较