2012-12-07 7 views
0

특히 파이썬에서 append()에 Null/None 값을 제공 할 수 있습니까?파이썬에서 append()와 readline을 사용하여 완성하기

자동 완성 기능을 명령 줄 응용 프로그램에 추가하려고합니다. 따라서 readline을 사용하여 사용자가 raw_input 프롬프트에서 입력 한 내용을 얻고 있습니다. 나는 (콘솔에 입력 값이없는) 탭을하려고 할 때

내가 문제를 얻고,이 메시지가 : 여기

코드는 "추가()는 정확히 하나 개의 인수 (0 주어진) 소요" :

트리의 깊이는 문제가되지 않습니다 어디 때문에 이송 기능의 여기에 제공된 예제를 사용하고
tokens = readline.get_line_buffer().split() 
if not tokens or readline.get_line_buffer()[-1] == ' ': 
    tokens.append() 

: https://www.ironalbatross.net/wiki/index.php5?title=Python_Readline_Completions#Complex_problem_.28Regular_Grammar.29

답변

0

OK APPEND 기능을 호출 할 수 없습니다 필요 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) 

고마워요!

1

tokens 변수가 list이다, 그래서 저를 나열 thod append은 실제로 하나의 인수 만 사용합니다.

>>> a = [] 
>>> a 
>>> [] 
>>> a.append(1) 
>>> a 
>>> [1] 
>>> a.append() 
>>> TypeError: append() takes exactly one argument (0 given) 
>>> a.append(None) 
>>> a 
>>> [1, None] 
0
  1. APPEND 정확히 하나의 인수

  2. 없음 객체가 나는 ... 그것을 해결하기 위해 관리 어떤 값을 확신하지 못했습니다