2016-10-17 140 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:當我允許的時候,我會將你的評論標記爲答案! –