2016-10-17 106 views
3

我想了解另一位作者的代码,在“NAND到俄罗斯方块”项目中编写解析器,但不明白在使用此代码块中显示的“<>”运算符时它们的含义。我已经包含了他们的构造函数以引用self.commands函数。Python中的运算符“<>”是什么意思?

def __init__(self,fname): 
    self.fname = fname 
    self.commands = open(fname, 'r').readlines() 
    self.cleanUp() 
. 
. 
. 

def hasMoreCommands(self): 
    """Return True if more commands to parse else return False""" 
    return self.commands <> [ ] 

对我来说似乎是一种更容易确定代码中是否有更多行的方法。那是对的吗?感谢您对这个问题的任何意见!请让我知道如果更多的信息会有所帮助。

+2

与'!='不相等。 – AChampion

+0

我认为它是以“小于或大于”开始的,类似于“<='的意思是”小于或等于“。但这使得它与“不平等”同义。 –

回答

6

在Python 2.X,<>是相同!=但用法已过时,有利于它是!=

参考的手册Comparision

所以较新的使用情况是不鼓励,return self.commands <> [ ]return self.commands != [ ]相同,这意味着self.commands不是一个空列表,根据您的文档字符串

如果有更多命令需要解析,则返回False

+1

整个代码块不是惯用的Python - 如果要测试列表是否为空,只需将其测试为布尔值即可。 '如果self.commands:'。空列表是'假',非空列表是'真'。 –

+0

@PeterDeGlopper:这是一个单独的论点,我不想离题。 – Abhijit

+0

非常感谢你的链接和解释! Abhijit:当我允许的时候,我会将你的评论标记为答案! –