`rlcompleter` — GNU readline을 위한 완성 함수
rlcompleter — GNU readline을 위한 완성 함수
rlcompleter 모듈은 readline 모듈의 set_completer()에 넘겨주기에 알맞은 완성(completion) 함수를 정의해요.
이 모듈이 readline 모듈을 쓸 수 있는 Unix 플랫폼에서 임포트되면, 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 configuration 참고).
readline이 없는 플랫폼에서는 이 모듈이 정의한 Completer 클래스를 여전히 사용자 정의 목적으로 쓸 수 있어요.
class rlcompleter.Completer
Completer 객체에는 다음과 같은 메서드가 있어요.
complete(*text*, *state*)
text에 대한 다음 가능한 완성을 반환해요. readline 모듈이 호출할 때는 이 메서드를 state == 0, 1, 2, ...로 계속 호출하다가 메서드가 None을 반환하면 멈춰요.
마침표 문자('.')를 포함하지 않는 text로 호출되면, 현재 __main__과 builtins에 정의된 이름, 그리고 keyword 모듈이 정의한 키워드에서 완성해요.
점으로 구분된 이름(예: 모듈.이름)으로 호출되면, 마지막 부분까지는 명백한 부작용이 없는 표현식을 평가하려고 시도해요(함수는 평가되지 않지만 __getattr__() 호출은 일으킬 수 있어요). 나머지 부분은 dir() 함수로 일치 항목을 찾아요. 표현식 평가 중 발생하는 예외는 모두 잡아서 조용히 무시하고 None을 반환해요.
더 알아보기
readline모듈 문서: 완성기를 설정하는set_completer()와parse_and_bind().