2016-10-17 8 views
3

「NAND to Tetris」プロジェクトにパーサーを書くための別の著者のコードを理解しようとしていますが、このコードの欄に示すように "<>"演算子を使用するときの意味を理解していません。 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.X、<>

+2

「!= 'と同じではありません。 – AChampion

+0

私はそれが「より小さい」または「より大きい」として始まったと思います。「<=」は「以下」を意味します。しかし、それは「同じ」と同義です。 –

答えて

6

!=と同じであるが、使用法は廃止され、!=

は、そうreturn self.commands <> [ ]Comparision

のマニュアルを参照のある新しい使用を支持して推奨され

trueを返しますあなたのdocstringあたり、より多くのコマンドはFalseを返す他に解析する場合は、空のリストがself.commandsを意味return self.commands != [ ]と同じではないです

+1

コードブロック全体がイディオムでないPython - リストが空であるかどうかをテストする場合は、ブール値としてテストしてください。 'もしself.commandsなら'。空リストは 'False'であり、空でないリストは' True'です。 –

+0

@PeterDeGlopper:それは私がしなかった別の議論です;逃げたいです。 – Abhijit

+0

リンクと説明をありがとうございました! Abhijit:私はそれが私に許されるときあなたのコメントを答えとしてマークします! –

関連する問題