0

具体的には、Python で append() に Null/None 値を指定できますか?

コマンドラインアプリケーションにオートコンプリート機能を追加しようとしているので、readline を使用して、ユーザーが raw_input プロンプトで入力した可能性のあるものを取得しています。

(コンソールに値を入力せずに) タブに移動しようとすると、次のメッセージが表示されます。

コードは次のとおりです。

tokens = readline.get_line_buffer().split()
if not tokens or readline.get_line_buffer()[-1] == ' ':
    tokens.append()

ツリーの深さが問題にならないトラバース関数のため、ここで提供されている例を使用してい ます:

4

3 に答える 3

1

tokensvariable は であるlistため、lists メソッドのappendは実際には引数を 1 つだけ取ります。

>>> a = []
>>> a
>>> []
>>> a.append(1)
>>> a
>>> [1]
>>> a.append()
>>> TypeError: append() takes exactly one argument (0 given)
>>> a.append(None)
>>> a
>>> [1, None]
于 2012-12-07T08:47:54.023 に答える
0
  1. append 引数は 1 つだけ必要です

  2. None オブジェクトは追加機能を呼び出すことができません

于 2012-12-07T08:48:33.713 に答える
0

OK私はそれを修正することができました... readlineによって返された値がなかったときにappend()を提供する値がわからなかったので、これを行い、機能しました:

def complete(self,text,state):
try:
    tokens = readline.get_line_buffer().split()
    if not tokens or readline.get_line_buffer()[-1] == ' ':
        tokens.append(text)

みんなありがとう!

于 2012-12-07T08:55:41.233 に答える