rlcompleter — GNU readline을 위한 완성 함수
rlcompleter — GNU readline을 위한 완성 함수
rlcompleter 모듈은 readline 모듈의 set_completer()에 전달하기에 적합한 완성 함수를 정의합니다.
본문
Unix 플랫폼에서 readline 모듈을 사용할 수 있는 상태로 이 모듈을 가져오면, Completer 클래스의 인스턴스가 자동으로 생성되고 그 complete() 메서드가 readline 완성기로 설정됩니다. 이 메서드는 유효한 Python 식별자와 키워드의 완성을 제공합니다.
예제:
>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind("tab: complete")
>>> readline. <TAB PRESSED>
readline.__doc__ readline.get_line_buffer( readline.read_init_file(
readline.__file__ readline.insert_text( readline.set_completer(
readline.__name__ readline.parse_and_bind(
>>> readline.
rlcompleter 모듈은 Python의 인터랙티브 모드에서 사용하도록 설계되었습니다. Python을 -S 옵션 없이 실행하지 않는 한, 이 모듈은 자동으로 가져와져 설정됩니다(readline 설정 참고).
readline이 없는 플랫폼에서는 이 모듈이 정의하는 Completer 클래스를 사용자 정의 목적으로 여전히 사용할 수 있습니다.
rlcompleter.Completer
Completer 객체는 다음과 같은 메서드를 가집니다.
complete(text, state)
text에 대해 가능한 다음 완성을 반환합니다.
readline 모듈이 호출할 때, 이 메서드는 state==0,1,2,...로 연속적으로 호출되다가 메서드가 None을 반환하면 멈춥니다.
마침표(.) 문자를 포함하지 않는 text로 호출되면, 현재 __main__, builtins 및 키워드(keyword 모듈이 정의하는)에 정의된 이름에서 완성합니다.
점으로 구분된 이름(dotted name)으로 호출되면, 명백한 부작용이 없는 표현식을 마지막 부분까지 평가하려 시도하고(함수는 평가되지 않지만 __getattr__() 호출을 생성할 수 있음), dir() 함수를 통해 나머지 부분에 대한 일치 항목을 찾습니다. 표현식 평가 중 발생하는 모든 예외는 포착되어 조용히 무시되고 None이 반환됩니다.