비차단 입력: 단일 문자 크로스 플랫폼 읽기
화면에 반영되지 않고 사용자 입력에서 단일 문자 읽기 다양한 프로그래밍 시나리오에서 공통적으로 필요한 사항입니다. Windows는 이러한 목적을 위해 특정 기능을 제공하지만 크로스 플랫폼 솔루션을 구현하는 것이 어려울 수 있습니다.
크로스 플랫폼 접근 방식
이러한 제한을 극복하려면 ActiveState Recipes 라이브러리를 활용하는 다용도 접근 방식은 Windows, Linux 및 Windows에서 원활하게 작동하는 솔루션을 제공합니다. OSX:
class _Getch: """Gets a single character from standard input. Does not echo to the screen.""" def __init__(self): try: self.impl = _GetchWindows() except ImportError: self.impl = _GetchUnix() def __call__(self): return self.impl() class _GetchUnix: def __init__(self): import tty, sys def __call__(self): import sys, tty, termios fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch class _GetchWindows: def __init__(self): import msvcrt def __call__(self): import msvcrt return msvcrt.getch() getch = _Getch()
사용법
이 메서드를 사용하려면 _Getch 클래스를 인스턴스화하고 호출 가능한 인터페이스를 호출하여 사용자 입력에서 단일 문자를 읽습니다.
ch = getch()
이 접근 방식은 비차단 입력 메커니즘을 제공하여 개발자가 문자 하나를 읽을 수 있도록 합니다. 프로그램 흐름을 중단하거나 화면에 표시하지 않고 사용자에게 전달합니다. 빠른 응답과 대화형 명령줄 애플리케이션을 위한 귀중한 도구입니다.
위 내용은 크로스 플랫폼을 차단하거나 에코하지 않고 사용자 입력에서 단일 문자를 어떻게 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!