"sys" --- System-specific parameters and functions
**************************************************

======================================================================

This module provides access to some variables used or maintained by
the interpreter and to functions that interact strongly with the
interpreter. It is always available.

sys.abiflags

   표준 "configure" 스크립트를 사용하여 파이썬을 빌드한 POSIX 시스템에
   서, 이것은 **PEP 3149**에 지정된 ABI 플래그를 포함합니다.

   버전 3.2에 추가.

   버전 3.8에서 변경: 기본 플래그는 빈 문자열이 되었습니다 (pymalloc을
   위한 "m" 플래그가 제거되었습니다).

sys.addaudithook(hook)

   Append the callable *hook* to the list of active auditing hooks for
   the current (sub)interpreter.

   When an auditing event is raised through the "sys.audit()"
   function, each hook will be called in the order it was added with
   the event name and the tuple of arguments. Native hooks added by
   "PySys_AddAuditHook()" are called first, followed by hooks added in
   the current (sub)interpreter.  Hooks can then log the event, raise
   an exception to abort the operation, or terminate the process
   entirely.

   Note that audit hooks are primarily for collecting information
   about internal or otherwise unobservable actions, whether by Python
   or libraries written in Python. They are not suitable for
   implementing a "sandbox". In particular, malicious code can
   trivially disable or bypass hooks added using this function. At a
   minimum, any security-sensitive hooks must be added using the C API
   "PySys_AddAuditHook()" before initialising the runtime, and any
   modules allowing arbitrary memory modification (such as "ctypes")
   should be completely removed or closely monitored.

   "sys.addaudithook()"을 호출하면 스스로 인자 없이 "sys.addaudithook"
   이라는 이름의 감사 이벤트를 발생시킵니다. 기존 훅에서
   "RuntimeError"에서 파생된 예외가 발생하면, 새 훅이 추가되지 않고 예
   외가 억제됩니다. 결과적으로, 호출자는 기존의 모든 훅을 제어하지 않
   는 한 훅이 추가되었다고 가정할 수 없습니다.

   CPython이 발생시키는 모든 이벤트에 대해서는 감사 이벤트 표를, 원래
   디자인 논의는 **PEP 578**을 참조하십시오.

   버전 3.8에 추가.

   버전 3.8.1에서 변경: "Exception"에서 파생되었지만 "RuntimeError"가
   아닌 예외는 더는 억제되지 않습니다.

   **CPython 구현 상세:** 추적(tracing)이 활성화되었을 때
   ("settrace()"를 참조하십시오), 파이썬 훅은 콜러블에 참값으로 설정된
   "__cantrace__" 멤버가 있을 때만 추적합니다. 그렇지 않으면, 추적 함
   수는 훅을 건너뜁니다.

sys.argv

   파이썬 스크립트에 전달된 명령 줄 인자 리스트. "argv[0]"은 스크립트
   이름입니다 (전체 경로명인지는 운영 체제에 따라 다릅니다). 인터프리
   터에 "-c" 명령 줄 옵션을 사용하여 명령이 실행되었으면, "argv[0]"은
   문자열 "'-c'"로 설정됩니다. 파이썬 인터프리터에 스크립트 이름이 전
   달되지 않으면, "argv[0]"은 빈 문자열입니다.

   표준 입력이나 명령 줄에 제공된 파일 목록을 루핑 하려면, "fileinput"
   모듈을 참조하십시오.

   See also "sys.orig_argv".

   참고:

     유닉스에서, 명령 줄 인자는 OS에서 바이트열로 전달됩니다. 파이썬은
     이것들을 파일 시스템 인코딩과 "surrogateescape" 에러 처리기로 디
     코딩합니다. 원본 바이트열이 필요할 때, "[os.fsencode(arg) for arg
     in sys.argv]"로 얻을 수 있습니다.

sys.audit(event, *args)

   활성 감사 훅으로 감사 이벤트를 발생시킵니다. *event*는 이벤트를 식
   별하는 문자열이고, *args*는 이벤트에 대한 추가 정보를 갖는 선택적
   인자를 포함할 수 있습니다. 주어진 이벤트에 대한 인자의 수와 형은 공
   개된 안정 API로 간주하며 배포 간에 수정되지 않아야 합니다.

   예를 들어, 한 감사 이벤트의 이름은 "os.chdir"입니다. 이 이벤트에는
   요청된 새 작업 디렉터리를 포함하는 *path*라는 인자가 하나 있습니다.

   "sys.audit()"는 이벤트 이름과 인자들을 전달하여 기존 감사 훅들을 호
   출하고, 어떤 훅에서건 발생한 첫 번째 예외를 발생시킵니다. 일반적으
   로, 예외가 발생하면, 처리되지 않아야 하며 가능한 한 빨리 프로세스를
   종료해야 합니다. 이렇게 하면 훅 구현이 특정 이벤트에 반응하는 방법
   을 결정할 수 있습니다: 단순히 이벤트를 로그 하거나 예외를 발생 시켜
   연산을 중단 할 수 있습니다.

   훅은 "sys.addaudithook()"이나 "PySys_AddAuditHook()" 함수를 사용하
   여 추가됩니다.

   이 함수의 네이티브 동등 물은 "PySys_Audit()"입니다. 가능하면 네이티
   브 함수를 사용하는 것이 좋습니다.

   CPython이 발생시키는 모든 이벤트에 대해서는 감사 이벤트 표를 참조하
   십시오.

   버전 3.8에 추가.

sys.base_exec_prefix

   파이썬 시작 중에, "site.py"가 실행되기 전에, "exec_prefix"와 같은
   값으로 설정됩니다. 가상 환경에서 실행되지 않으면, 값은 같게 유지됩
   니다; "site.py"가 가상 환경이 사용 중임을 발견하면, "prefix"와
   "exec_prefix"의 값은 가상 환경을 가리키도록 변경되지만,
   "base_prefix"와 "base_exec_prefix"는 기본 파이썬 설치(가상 환경을
   만든 것)를 계속 가리킵니다.

   버전 3.3에 추가.

sys.base_prefix

   파이썬 시작 중에, "site.py"가 실행되기 전에, "prefix"와 같은 값으로
   설정됩니다. 가상 환경에서 실행되지 않으면, 값은 같게 유지됩니다;
   "site.py"가 가상 환경이 사용 중임을 발견하면, "prefix"와
   "exec_prefix"의 값은 가상 환경을 가리키도록 변경되지만,
   "base_prefix"와 "base_exec_prefix"는 기본 파이썬 설치(가상 환경을
   만든 것)를 계속 가리킵니다.

   버전 3.3에 추가.

sys.byteorder

   네이티브 바이트 순서의 표시기. 이는 빅 엔디안(최상위 바이트 먼저)
   플랫폼에서 "'big'" 값을, 리틀 엔디안(최하위 바이트 먼저) 플랫폼에서
   "'little'"을 갖습니다.

sys.builtin_module_names

   A tuple of strings containing the names of all modules that are
   compiled into this Python interpreter.  (This information is not
   available in any other way --- "modules.keys()" only lists the
   imported modules.)

   See also the "sys.stdlib_module_names" list.

sys.call_tracing(func, args)

   Call "func(*args)", while tracing is enabled.  The tracing state is
   saved, and restored afterwards.  This is intended to be called from
   a debugger from a checkpoint, to recursively debug or profile some
   other code.

   Tracing is suspended while calling a tracing function set by
   "settrace()" or "setprofile()" to avoid infinite recursion.
   "call_tracing()" enables explicit recursion of the tracing
   function.

sys.copyright

   파이썬 인터프리터와 관련된 저작권이 포함된 문자열.

sys._clear_type_cache()

   내부 형 캐시를 지웁니다. 형 캐시는 어트리뷰트와 메서드 조회 속도를
   높이는 데 사용됩니다. 참조 누수 디버깅 중에 불필요한 참조를 제거하
   기 위해서 *만* 이 함수를 사용하십시오.

   이 함수는 내부와 특수 목적으로만 사용해야 합니다.

sys._current_frames()

   함수가 호출될 때 각 스레드의 식별자를 해당 스레드에서 현재 활성화된
   최상위 스택 프레임에 매핑하는 딕셔너리를 반환합니다. "traceback" 모
   듈의 함수는 이러한 프레임을 주면 호출 스택을 빌드할 수 있음에 유의
   하십시오.

   이것은 교착 상태 디버깅에 가장 유용합니다: 이 함수는 교착 상태에 빠
   진 스레드의 협력을 필요로하지 않으며, 이러한 스레드의 호출 스택은
   교착 상태를 유지하는 한 고정됩니다. 교착 상태가 아닌 스레드에 대해
   반환된 프레임은 호출하는 코드가 프레임을 검사할 때까지 해당 스레드
   의 현재 활동과 관련이 없을 수 있습니다.

   이 함수는 내부와 특수 목적으로만 사용해야 합니다.

   인자 없이 감사 이벤트 "sys._current_frames"를 발생시킵니다.

sys._current_exceptions()

   Return a dictionary mapping each thread's identifier to the topmost
   exception currently active in that thread at the time the function
   is called. If a thread is not currently handling an exception, it
   is not included in the result dictionary.

   This is most useful for statistical profiling.

   이 함수는 내부와 특수 목적으로만 사용해야 합니다.

   Raises an auditing event "sys._current_exceptions" with no
   arguments.

sys.breakpointhook()

   이 훅 함수는 내장 "breakpoint()"에 의해 호출됩니다. 기본적으로,
   "pdb" 디버거로 떨어뜨리지만, 다른 함수로 설정하여 사용할 디버거를
   선택할 수 있습니다.

   이 함수의 서명은 그것이 호출하는 것에 의존합니다. 예를 들어, 기본
   바인딩(예를 들어 "pdb.set_trace()")에는 인자가 필요하지 않지만, 추
   가 인자(위치 및/또는 키워드)를 기대하는 함수에 바인딩할 수 있습니다
   . 내장 "breakpoint()" 함수는 "*args"와 "**kws"를 그대로 전달합니다.
   "breakpointhooks()"가 반환하는 것이 "breakpoint()"에서 반환됩니다.

   기본 구현은 먼저 환경 변수 "PYTHONBREAKPOINT"를 참조합니다. 이것이
   ""0""으로 설정되면, 이 함수는 즉시 반환합니다; 즉, 아무런 일도 하지
   않습니다. 환경 변수가 설정되지 않거나 빈 문자열로 설정되면,
   "pdb.set_trace()"가 호출됩니다. 그렇지 않으면 이 변수는 파이썬의 점
   으로 표현한 임포트 표기법(예를 들어
   "package.subpackage.module.function")을 사용하여 실행할 함수의 이름
   을 지정해야 합니다. 이 경우, "package.subpackage.module"이 임포트
   되고 결과 모듈에는 "function()"이라는 이름의 콜러블이 있어야 합니다
   . 이것이 "*args" 및 "**kws"를 전달하여 실행되며, "function()"이 반
   환하는 것을 "sys.breakpointhook()"이 내장 "breakpoint()" 함수로 반
   환합니다.

   "PYTHONBREAKPOINT"로 이름이 지정된 콜러블을 임포트 하는 도중에 문제
   가 발생하면, "RuntimeWarning"이 보고되고 중단점은 무시됨에 유의하십
   시오.

   또한 "sys.breakpointhook()"이 프로그래밍 방식으로 재정의되면,
   "PYTHONBREAKPOINT"는 참조되지 *않음*에 유의하십시오.

   버전 3.7에 추가.

sys._debugmallocstats()

   CPython의 메모리 할당자 상태에 대한 저수준 정보를 stderr에 인쇄합니
   다.

   If Python is built in debug mode ("configure --with-pydebug
   option"), it also performs some expensive internal consistency
   checks.

   버전 3.3에 추가.

   **CPython 구현 상세:** 이 함수는 CPython 전용입니다. 정확한 출력 형
   식은 여기에 정의되어 있지 않으며, 변경될 수 있습니다.

sys.dllhandle

   파이썬 DLL의 핸들을 지정하는 정수.

   Availability: Windows.

sys.displayhook(value)

   *value*가 "None"이 아니면, 이 함수는 "repr(value)"를 "sys.stdout"으
   로 인쇄하고, *value*를 "builtins._"에 저장합니다. "repr(value)"를
   "sys.stdout.errors" 에러 처리기(아마도 "'strict'")로
   "sys.stdout.encoding"으로 인코딩할 수 없으면, "'backslashreplace'"
   에러 처리기를 사용하여 "sys.stdout.encoding"으로 인코딩합니다.

   "sys.displayhook"은 대화형 파이썬 세션에서 입력한 *표현식*을 평가한
   결과에 대해 호출됩니다. "sys.displayhook"에 다른 1-인자 함수를 대입
   하여 이러한 값의 표시를 사용자 정의할 수 있습니다.

   의사 코드:

      def displayhook(value):
          if value is None:
              return
          # Set '_' to None to avoid recursion
          builtins._ = None
          text = repr(value)
          try:
              sys.stdout.write(text)
          except UnicodeEncodeError:
              bytes = text.encode(sys.stdout.encoding, 'backslashreplace')
              if hasattr(sys.stdout, 'buffer'):
                  sys.stdout.buffer.write(bytes)
              else:
                  text = bytes.decode(sys.stdout.encoding, 'strict')
                  sys.stdout.write(text)
          sys.stdout.write("\n")
          builtins._ = value

   버전 3.2에서 변경: "UnicodeEncodeError" 에 "'backslashreplace'" 에
   러 처리기를 사용합니다.

sys.dont_write_bytecode

   이것이 참이면, 파이썬은 소스 모듈을 임포트 할 때 ".pyc" 파일을 쓰려
   고 하지 않습니다. 이 값은 "-B" 명령 줄 옵션과
   "PYTHONDONTWRITEBYTECODE" 환경 변수에 따라 초기에 "True"나 "False"
   로 설정되지만, 바이트 코드 파일 생성을 제어하기 위해 직접 설정할 수
   있습니다.

sys._emscripten_info

   A *named tuple* holding information about the environment on the
   *wasm32-emscripten* platform. The named tuple is provisional and
   may change in the future.

   _emscripten_info.emscripten_version

      Emscripten version as tuple of ints (major, minor, micro), e.g.
      "(3, 1, 8)".

   _emscripten_info.runtime

      Runtime string, e.g. browser user agent, "'Node.js v14.18.2'",
      or "'UNKNOWN'".

   _emscripten_info.pthreads

      "True" if Python is compiled with Emscripten pthreads support.

   _emscripten_info.shared_memory

      "True" if Python is compiled with shared memory support.

   Availability: Emscripten.

   버전 3.11에 추가.

sys.pycache_prefix

   If this is set (not "None"), Python will write bytecode-cache
   ".pyc" files to (and read them from) a parallel directory tree
   rooted at this directory, rather than from "__pycache__"
   directories in the source code tree. Any "__pycache__" directories
   in the source code tree will be ignored and new ".pyc" files
   written within the pycache prefix. Thus if you use "compileall" as
   a pre-build step, you must ensure you run it with the same pycache
   prefix (if any) that you will use at runtime.

   상대 경로는 현재 작업 디렉터리를 기준으로 해석됩니다.

   이 값은 초기에 "-X" "pycache_prefix=PATH" 명령 줄 옵션이나
   "PYTHONPYCACHEPREFIX" 환경 변수(명령 줄이 우선합니다)의 값을 기반으
   로 설정됩니다. 둘 다 설정되지 않으면, "None"입니다.

   버전 3.8에 추가.

sys.excepthook(type, value, traceback)

   이 함수는 주어진 트레이스백(traceback)과 예외를 "sys.stderr"에 인쇄
   합니다.

   When an exception other than "SystemExit" is raised and uncaught,
   the interpreter calls "sys.excepthook" with three arguments, the
   exception class, exception instance, and a traceback object.  In an
   interactive session this happens just before control is returned to
   the prompt; in a Python program this happens just before the
   program exits.  The handling of such top-level exceptions can be
   customized by assigning another three-argument function to
   "sys.excepthook".

   잡히지 않은 예외가 발생할 때 인자 "hook", "type", "value",
   "traceback"로 감사 이벤트 "sys.excepthook"을 발생시킵니다. 아무런
   훅도 설정되지 않았으면, "hook"은 "None" 일 수 있습니다. 훅이
   "RuntimeError"에서 파생된 예외를 발생시키면 훅 호출이 억제됩니다.
   그렇지 않으면, 감사 훅 예외는 발생시킬 수 없는 것(unraisable)으로
   보고되고 "sys.excepthook"이 호출됩니다.

   더 보기:

     "sys.unraisablehook()" 함수는 발생시킬 수 없는 예외(unraisable
     exception)를 다루고 "threading.excepthook()" 함수는
     "threading.Thread.run()"이 발생시킨 예외를 다룹니다.

sys.__breakpointhook__
sys.__displayhook__
sys.__excepthook__
sys.__unraisablehook__

   이러한 객체는 프로그램 시작 시 "breakpointhook", "displayhook",
   "excepthook" 및 "unraisablehook" 의 원래 값을 포함합니다.
   "breakpointhook", "displayhook" 및 "excepthook", "unraisablehook"
   이 파손되거나 대체 객체로 교체될 때 복원 할 수 있도록 저장됩니다.

   버전 3.7에 추가: __breakpointhook__

   버전 3.8에 추가: __unraisablehook__

sys.exception()

   This function, when called while an exception handler is executing
   (such as an "except" or "except*" clause), returns the exception
   instance that was caught by this handler. When exception handlers
   are nested within one another, only the exception handled by the
   innermost handler is accessible.

   If no exception handler is executing, this function returns "None".

   버전 3.11에 추가.

sys.exc_info()

   This function returns the old-style representation of the handled
   exception. If an exception "e" is currently handled (so
   "exception()" would return "e"), "exc_info()" returns the tuple
   "(type(e), e, e.__traceback__)". That is, a tuple containing the
   type of the exception (a subclass of "BaseException"), the
   exception itself, and a traceback object which typically
   encapsulates the call stack at the point where the exception last
   occurred.

   If no exception is being handled anywhere on the stack, this
   function return a tuple containing three "None" values.

   버전 3.11에서 변경: The "type" and "traceback" fields are now
   derived from the "value" (the exception instance), so when an
   exception is modified while it is being handled, the changes are
   reflected in the results of subsequent calls to "exc_info()".

sys.exec_prefix

   플랫폼 특정 파이썬 파일이 설치되는 사이트 특정 디렉터리 접두사를 제
   공하는 문자열; 기본적으로, 이것은 "'/usr/local'"이기도 합니다.
   **configure** 스크립트에 "--exec-prefix" 인자를 사용하여 빌드 시 설
   정할 수 있습니다. 구체적으로, 모든 구성 파일(예를 들어 "pyconfig.h"
   헤더 파일)은 디렉터리 "*exec_prefix*/lib/python*X.Y*/config"에 설치
   되고, 공유 라이브러리 모듈은 "*exec_prefix*/lib/python*X.Y*/lib-
   dynload"에 설치됩니다. 여기서 *X.Y*는 파이썬의 버전 번호입니다, 예
   를 들어 "3.2".

   참고:

     가상 환경이 유효하면, 이 값은 "site.py"에서 가상 환경을 가리키도
     록 변경됩니다. 파이썬 설치 값은 "base_exec_prefix"를 통해 계속 제
     공됩니다.

sys.executable

   의미가 있는 시스템에서, 파이썬 인터프리터를 위한 실행 바이너리의 절
   대 경로를 제공하는 문자열. 파이썬이 실행 파일의 실제 경로를 검색할
   수 없으면, "sys.executable"은 빈 문자열이거나 "None"입니다.

sys.exit([arg])

   Raise a "SystemExit" exception, signaling an intention to exit the
   interpreter.

   선택적 인자 *arg*는 종료 상태(기본값은 0)를 나타내는 정수나 다른 형
   의 객체일 수 있습니다. 정수면, 0은 "성공적인 종료"로 간주하고, 0이
   아닌 값은 셸 등이 "비정상 종료"로 간주합니다. 대부분 시스템은 0--
   127 범위를 요구하고, 그렇지 않으면 정의되지 않은 결과를 생성합니다.
   일부 시스템에는 특정 종료 코드에 특정 의미를 지정하는 규칙이 있지만
   , 일반적으로 잘 개발되지 않은 상태입니다; 유닉스 프로그램은 일반적
   으로 명령 줄 구문 에러에 2를, 다른 모든 종류의 에러에 1을 사용합니
   다. 다른 형의 객체가 전달되면, "None"은 0을 전달하는 것과 동등하며,
   다른 모든 객체는 "stderr"로 인쇄되고 종료 코드 1을 만듭니다. 특히,
   "sys.exit("some error message")"는 에러가 발생할 때 프로그램을 종료
   하는 빠른 방법입니다.

   Since "exit()" ultimately "only" raises an exception, it will only
   exit the process when called from the main thread, and the
   exception is not intercepted. Cleanup actions specified by finally
   clauses of "try" statements are honored, and it is possible to
   intercept the exit attempt at an outer level.

   버전 3.6에서 변경: 파이썬 인터프리터가 "SystemExit"를 잡은 후 정리
   할 때 에러가 발생하면 (가령 표준 스트림에 버퍼링 된 데이터를 플러시
   할 때의 에러), 종료 상태가 120으로 변경됩니다.

sys.flags

   *네임드 튜플* *flags*는 명령 줄 플래그의 상태를 노출합니다. 어트리
   뷰트는 읽기 전용입니다.

   +----------------------------------------------------+----------------------------------------------------+
   | flags.debug                                        | "-d"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.inspect                                      | "-i"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.interactive                                  | "-i"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.isolated                                     | "-I"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.optimize                                     | "-O" 또는 "-OO"                                    |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.dont_write_bytecode                          | "-B"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.no_user_site                                 | "-s"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.no_site                                      | "-S"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.ignore_environment                           | "-E"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.verbose                                      | "-v"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.bytes_warning                                | "-b"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.quiet                                        | "-q"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.hash_randomization                           | "-R"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.dev_mode                                     | "-X dev" (파이썬 개발 모드)                        |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.utf8_mode                                    | "-X utf8"                                          |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.safe_path                                    | "-P"                                               |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.int_max_str_digits                           | "-X int_max_str_digits" (integer string conversion |
   |                                                    | length limitation)                                 |
   +----------------------------------------------------+----------------------------------------------------+
   | flags.warn_default_encoding                        | "-X warn_default_encoding"                         |
   +----------------------------------------------------+----------------------------------------------------+

   버전 3.2에서 변경: 새로운 "-q" 플래그에 대한 "quiet" 어트리뷰트가
   추가되었습니다.

   버전 3.2.3에 추가: "hash_randomization" 어트리뷰트.

   버전 3.3에서 변경: 사용되지 않는 "division_warning" 어트리뷰트를 제
   거했습니다.

   버전 3.4에서 변경: "-I" "isolated" 플래그에 대한 "isolated" 어트리
   뷰트가 추가되었습니다.

   버전 3.7에서 변경: 새로운 파이썬 개발자 모드에 대한 "dev_mode" 어트
   리뷰트와 새로운 "-X" "utf8" 플래그에 대한 "utf8_mode" 어트리뷰트가
   추가되었습니다.

   버전 3.10에서 변경: Added "warn_default_encoding" attribute for
   "-X" "warn_default_encoding" flag.

   버전 3.11에서 변경: Added the "safe_path" attribute for "-P"
   option.

   버전 3.11에서 변경: Added the "int_max_str_digits" attribute.

sys.float_info

   float 형에 대한 정보를 담은 *네임드 튜플*. 정밀도와 내부 표현에 대
   한 저수준 정보를 포함합니다. 값은 'C' 프로그래밍 언어의 표준 헤더
   파일 "float.h"에 정의된 다양한 부동 소수점 상수에 해당합니다; 자세
   한 내용은 1999 ISO/IEC C 표준 [C99] 의 섹션 5.2.4.2.2
   'Characteristics of floating types'를 참조하십시오.


   Attributes of the "float_info" *named tuple*
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   +-----------------------------------+-----------------------------------+-----------------------------------+
   | 어트리뷰트                        | float.h 매크로                    | 설명                              |
   |===================================|===================================|===================================|
   | float_info.epsilon                | "DBL_EPSILON"                     | difference between 1.0 and the    |
   |                                   |                                   | least value greater than 1.0 that |
   |                                   |                                   | is representable as a float.      |
   |                                   |                                   | "math.ulp()"도 참조하십시오.      |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.dig                    | "DBL_DIG"                         | The maximum number of decimal     |
   |                                   |                                   | digits that can be faithfully     |
   |                                   |                                   | represented in a float; see       |
   |                                   |                                   | below.                            |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.mant_dig               | "DBL_MANT_DIG"                    | Float precision: the number of    |
   |                                   |                                   | base-"radix" digits in the        |
   |                                   |                                   | significand of a float.           |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.max                    | "DBL_MAX"                         | The maximum representable         |
   |                                   |                                   | positive finite float.            |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.max_exp                | "DBL_MAX_EXP"                     | The maximum integer *e* such that |
   |                                   |                                   | "radix**(e-1)" is a representable |
   |                                   |                                   | finite float.                     |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.max_10_exp             | "DBL_MAX_10_EXP"                  | The maximum integer *e* such that |
   |                                   |                                   | "10**e" is in the range of        |
   |                                   |                                   | representable finite floats.      |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.min                    | "DBL_MIN"                         | The minimum representable         |
   |                                   |                                   | positive *normalized* float.      |
   |                                   |                                   | "math.ulp(0.0)"를 사용하여 가장   |
   |                                   |                                   | 작은 양의 *정규화되지 않은        |
   |                                   |                                   | (denormalized)* 표현 가능한 float |
   |                                   |                                   | 를 얻습니다.                      |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.min_exp                | "DBL_MIN_EXP"                     | The minimum integer *e* such that |
   |                                   |                                   | "radix**(e-1)" is a normalized    |
   |                                   |                                   | float.                            |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.min_10_exp             | "DBL_MIN_10_EXP"                  | The minimum integer *e* such that |
   |                                   |                                   | "10**e" is a normalized float.    |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.radix                  | "FLT_RADIX"                       | The radix of exponent             |
   |                                   |                                   | representation.                   |
   +-----------------------------------+-----------------------------------+-----------------------------------+
   | float_info.rounds                 | "FLT_ROUNDS"                      | An integer representing the       |
   |                                   |                                   | rounding mode for floating-point  |
   |                                   |                                   | arithmetic. This reflects the     |
   |                                   |                                   | value of the system "FLT_ROUNDS"  |
   |                                   |                                   | macro at interpreter startup      |
   |                                   |                                   | time:  * "-1": indeterminable  *  |
   |                                   |                                   | "0": toward zero  * "1": to       |
   |                                   |                                   | nearest  * "2": toward positive   |
   |                                   |                                   | infinity  * "3": toward negative  |
   |                                   |                                   | infinity  All other values for    |
   |                                   |                                   | "FLT_ROUNDS" characterize         |
   |                                   |                                   | implementation- defined rounding  |
   |                                   |                                   | behavior.                         |
   +-----------------------------------+-----------------------------------+-----------------------------------+

   The attribute "sys.float_info.dig" needs further explanation.  If
   "s" is any string representing a decimal number with at most
   "sys.float_info.dig" significant digits, then converting "s" to a
   float and back again will recover a string representing the same
   decimal value:

      >>> import sys
      >>> sys.float_info.dig
      15
      >>> s = '3.14159265358979'    # decimal string with 15 significant digits
      >>> format(float(s), '.15g')  # convert to float and back -> same value
      '3.14159265358979'

   그러나 유효 숫자가 "sys.float_info.dig"보다 많은 문자열의 경우, 항
   상 그렇지는 않습니다:

      >>> s = '9876543211234567'    # 16 significant digits is too many!
      >>> format(float(s), '.16g')  # conversion changes value
      '9876543211234568'

sys.float_repr_style

   "repr()" 함수가 float에 대해 작동하는 방식을 나타내는 문자열. 문자
   열이 "'short'" 값을 가지면, 유한 float "x"의 경우, "repr(x)"는
   "float(repr(x)) == x" 속성을 유지하는 짧은 문자열을 생성하는 것을
   목표로 합니다. 이것은 파이썬 3.1 이상에서 일반적인 동작입니다. 그렇
   지 않으면, "float_repr_style"은 "'legacy'" 값을 가지며 "repr(x)"는
   3.1 이전의 파이썬 버전에서와 같은 방식으로 작동합니다.

   버전 3.1에 추가.

sys.getallocatedblocks()

   Return the number of memory blocks currently allocated by the
   interpreter, regardless of their size.  This function is mainly
   useful for tracking and debugging memory leaks.  Because of the
   interpreter's internal caches, the result can vary from call to
   call; you may have to call "_clear_type_cache()" and "gc.collect()"
   to get more predictable results.

   If a Python build or implementation cannot reasonably compute this
   information, "getallocatedblocks()" is allowed to return 0 instead.

   버전 3.4에 추가.

sys.getandroidapilevel()

   Return the build time API version of Android as an integer.

   Availability: Android.

   버전 3.7에 추가.

sys.getdefaultencoding()

   Return the name of the current default string encoding used by the
   Unicode implementation.

sys.getdlopenflags()

   Return the current value of the flags that are used for "dlopen()"
   calls.  Symbolic names for the flag values can be found in the "os"
   module ("RTLD_*xxx*" constants, e.g. "os.RTLD_LAZY").

   Availability: Unix.

sys.getfilesystemencoding()

   Get the *filesystem encoding*: the encoding used with the
   *filesystem error handler* to convert between Unicode filenames and
   bytes filenames. The filesystem error handler is returned from
   "getfilesystemencodeerrors()".

   For best compatibility, str should be used for filenames in all
   cases, although representing filenames as bytes is also supported.
   Functions accepting or returning filenames should support either
   str or bytes and internally convert to the system's preferred
   representation.

   올바른 인코딩과 에러 모드를 사용하려면 "os.fsencode()"와
   "os.fsdecode()"를 사용해야 합니다.

   The *filesystem encoding and error handler* are configured at
   Python startup by the "PyConfig_Read()" function: see
   "filesystem_encoding" and "filesystem_errors" members of
   "PyConfig".

   버전 3.2에서 변경: "getfilesystemencoding()" 결과는 더는 "None"일
   수 없습니다.

   버전 3.6에서 변경: 윈도우는 더는 "'mbcs'"를 반환한다고 보장하지 않
   습니다. 자세한 정보는 **PEP 529**와
   "_enablelegacywindowsfsencoding()"를 참조하십시오.

   버전 3.7에서 변경: Return "'utf-8'" if the Python UTF-8 Mode is
   enabled.

sys.getfilesystemencodeerrors()

   Get the *filesystem error handler*: the error handler used with the
   *filesystem encoding* to convert between Unicode filenames and
   bytes filenames. The filesystem encoding is returned from
   "getfilesystemencoding()".

   올바른 인코딩과 에러 모드를 사용하려면 "os.fsencode()"와
   "os.fsdecode()"를 사용해야 합니다.

   The *filesystem encoding and error handler* are configured at
   Python startup by the "PyConfig_Read()" function: see
   "filesystem_encoding" and "filesystem_errors" members of
   "PyConfig".

   버전 3.6에 추가.

sys.get_int_max_str_digits()

   Returns the current value for the integer string conversion length
   limitation. See also "set_int_max_str_digits()".

   버전 3.11에 추가.

sys.getrefcount(object)

   *object*의 참조 횟수를 반환합니다. 반환된 수는 일반적으로 예상보다
   1이 높습니다. "getrefcount()"에 대한 인자로서의 (임시) 참조를 포함
   하기 때문입니다.

   Note that the returned value may not actually reflect how many
   references to the object are actually held.  Consequently, do not
   rely on the returned value to be accurate, other than a value of 0
   or 1.

sys.getrecursionlimit()

   파이썬 인터프리터 스택의 최대 깊이인, 재귀 한계의 현재 값을 반환합
   니다. 이 제한은 무한 재귀로 인해 C 스택의 오버플로가 발생하고 파이
   썬이 충돌하는 것을 방지합니다. "setrecursionlimit()"로 설정할 수 있
   습니다.

sys.getsizeof(object[, default])

   객체의 크기를 바이트 단위로 반환합니다. 객체는 모든 형의 객체일 수
   있습니다. 모든 내장 객체는 올바른 결과를 반환하지만, 구현 특정이기
   때문에 제삼자 확장에서도 그렇다고 보장할 수는 없습니다.

   객체에 직접 기여한 메모리 소비만 포함하며, 이 객체가 참조하는 객체
   의 메모리 소비는 따지지 않습니다.

   주어진 경우, 객체가 크기를 조회하는 수단을 제공하지 않으면
   *default*가 반환됩니다. 그렇지 않으면 "TypeError"가 발생합니다.

   "getsizeof()"는 객체의 "__sizeof__" 메서드를 호출하고 객체가 가비지
   수거기에 의해 관리되면 추가 가비지 수거기 오버헤드를 추가합니다.

   See recursive sizeof recipe for an example of using "getsizeof()"
   recursively to find the size of containers and all their contents.

sys.getswitchinterval()

   Return the interpreter's "thread switch interval"; see
   "setswitchinterval()".

   버전 3.2에 추가.

sys._getframe([depth])

   호출 스택에서 프레임 객체를 반환합니다. 선택적 정수 *depth*가 제공
   되면, 스택 맨 위에서 지정한 수 만큼 아래에 있는 호출의 프레임 객체
   를 반환합니다. 호출 스택보다 깊으면, "ValueError"가 발생합니다.
   *depth*의 기본값은 0이며, 호출 스택의 맨 위에 있는 프레임을 반환합
   니다.

   Raises an auditing event "sys._getframe" with argument "frame".

   **CPython 구현 상세:** 이 함수는 내부와 특수 목적으로만 사용해야 합
   니다. 모든 파이썬 구현에 존재한다고 보장되는 것은 아닙니다.

sys.getprofile()

   "setprofile()"에 의해 설정된 프로파일러 함수를 얻습니다.

sys.gettrace()

   "settrace()"에 의해 설정된 추적 함수를 얻습니다.

   **CPython 구현 상세:** "gettrace()" 함수는 디버거, 프로파일러, 커버
   리지 도구 등을 구현하기 위한 것입니다. 그 동작은 언어 정의의 일부라
   기보다는 구현 플랫폼의 일부이기 때문에, 모든 파이썬 구현에서 사용
   가능한 것은 아닙니다.

sys.getwindowsversion()

   현재 실행 중인 윈도우 버전을 설명하는 네임드 튜플을 반환합니다. 명
   명된 요소는 *major*, *minor*, *build*, *platform*, *service_pack*,
   *service_pack_minor*, *service_pack_major*, *suite_mask*,
   *product_type* 및 *platform_version*입니다. *service_pack*은 문자열
   을 포함하고 *platform_version*은 3-튜플이며 다른 모든 값은 정수입니
   다. 구성 요소는 이름으로도 액세스할 수 있어서,
   "sys.getwindowsversion()[0]" 은 "sys.getwindowsversion().major"와
   동등합니다. 이전 버전과의 호환성을 위해, 처음 5개 요소 만 인덱싱을
   통해 꺼낼 수 있습니다.

   *platform* will be "2" (VER_PLATFORM_WIN32_NT).

   *product_type*은 다음 값 중 하나일 수 있습니다:

   +-----------------------------------------+-----------------------------------+
   | 상수                                    | 의미                              |
   |=========================================|===================================|
   | "1" (VER_NT_WORKSTATION)                | 시스템은 워크 스테이션입니다.     |
   +-----------------------------------------+-----------------------------------+
   | "2" (VER_NT_DOMAIN_CONTROLLER)          | 시스템은 도메인 컨트롤러입니다.   |
   +-----------------------------------------+-----------------------------------+
   | "3" (VER_NT_SERVER)                     | 시스템은 서버이지만, 도메인 컨트  |
   |                                         | 롤러는 아닙니다.                  |
   +-----------------------------------------+-----------------------------------+

   This function wraps the Win32 "GetVersionEx()" function; see the
   Microsoft documentation on "OSVERSIONINFOEX()" for more information
   about these fields.

   *platform_version* returns the major version, minor version and
   build number of the current operating system, rather than the
   version that is being emulated for the process. It is intended for
   use in logging rather than for feature detection.

   참고:

     *platform_version* derives the version from kernel32.dll which
     can be of a different version than the OS version. Please use
     "platform" module for achieving accurate OS version.

   Availability: Windows.

   버전 3.2에서 변경: 네임드 튜플로 변경되어 *service_pack_minor*,
   *service_pack_major*, *suite_mask* 및 *product_type*이 추가되었습니
   다.

   버전 3.6에서 변경: *platform_version*을 추가했습니다

sys.get_asyncgen_hooks()

   Returns an *asyncgen_hooks* object, which is similar to a
   "namedtuple" of the form "(firstiter, finalizer)", where
   *firstiter* and *finalizer* are expected to be either "None" or
   functions which take an *asynchronous generator iterator* as an
   argument, and are used to schedule finalization of an asynchronous
   generator by an event loop.

   버전 3.6에 추가: 자세한 내용은 **PEP 525**를 참조하십시오.

   참고:

     이 함수는 잠정적(provisional)으로 추가되었습니다 (자세한 내용은
     **PEP 411**을 참조하십시오).

sys.get_coroutine_origin_tracking_depth()

   "set_coroutine_origin_tracking_depth()"로 설정된 현재 코루틴 원점
   추적 깊이를 가져옵니다.

   버전 3.7에 추가.

   참고:

     이 함수는 잠정적(provisional)으로 추가되었습니다 (자세한 내용은
     **PEP 411**을 참조하십시오). 디버깅 목적으로만 사용하십시오.

sys.hash_info

   숫자 해시 구현의 매개 변수를 제공하는 *네임드 튜플*. 숫자 형의 해싱
   에 대한 자세한 내용은 숫자 형의 해싱을 참조하십시오.

   hash_info.width

      The width in bits used for hash values

   hash_info.modulus

      The prime modulus P used for numeric hash scheme

   hash_info.inf

      The hash value returned for a positive infinity

   hash_info.nan

      (This attribute is no longer used)

   hash_info.imag

      The multiplier used for the imaginary part of a complex number

   hash_info.algorithm

      The name of the algorithm for hashing of str, bytes, and
      memoryview

   hash_info.hash_bits

      The internal output size of the hash algorithm

   hash_info.seed_bits

      The size of the seed key of the hash algorithm

   버전 3.2에 추가.

   버전 3.4에서 변경: *algorithm*, *hash_bits* 및 *seed_bits*를 추가했
   습니다

sys.hexversion

   단일 정수로 인코딩된 버전 번호. 이것은 비 프로덕션 릴리스에 대한 적
   절한 지원을 포함하여, 버전마다 증가함이 보장됩니다. 예를 들어, 파이
   썬 인터프리터가 버전 1.5.2 이상인지 검사하려면, 다음을 사용하십시오
   :

      if sys.hexversion >= 0x010502F0:
          # use some advanced feature
          ...
      else:
          # use an alternative implementation or warn the user
          ...

   내장 "hex()" 함수에 전달한 결과로 볼 때만 실제로 의미가 있기 때문에
   이것을 "hexversion"이라고 합니다. *네임드 튜플* "sys.version_info"
   는 같은 정보의 더 인간 친화적인 인코딩으로 사용될 수 있습니다.

   "hexversion"에 대한 자세한 내용은 API와 ABI 버전 붙이기 에서 찾을
   수 있습니다.

sys.implementation

   현재 실행 중인 파이썬 인터프리터의 구현에 대한 정보가 포함된 객체.
   모든 파이썬 구현에서 다음과 같은 어트리뷰트가 있어야 합니다.

   *name*은 구현 식별자입니다, 예를 들어 "'cpython'". 실제 문자열은 파
   이썬 구현에 의해 정의되지만, 소문자임이 보장됩니다.

   *version*은 "sys.version_info"와 같은 형식의 네임드 튜플입니다. 파
   이썬 *구현*의 버전을 나타냅니다. 이것은 현재 실행 중인 인터프리터가
   준수하는, "sys.version_info"가 나타내는, 특정 버전의 파이썬 *언어*
   와는 다른 의미입니다. 예를 들어, PyPy 1.8의 경우
   "sys.implementation.version"은 "sys.version_info(1, 8, 0, 'final',
   0)"일 수 있지만, "sys.version_info"는 "sys.version_info(2, 7, 2,
   'final', 0)"입니다. CPython의 경우 참조 구현이기 때문에 같은 값입니
   다.

   *hexversion*은 "sys.hexversion"과 같은 16진수 형식의 구현 버전입니
   다.

   *cache_tag*는 임포트 절차에서 캐시 된 모듈의 파일명에 사용되는 태그
   입니다. 관습상, "'cpython-33'"과 같이 구현 이름과 버전을 합성한 것
   입니다. 그러나, 파이썬 구현은 적절하다면 다른 값을 사용할 수 있습니
   다. "cache_tag"가 "None"으로 설정되면, 모듈 캐싱을 사용하지 않아야
   함을 나타냅니다.

   "sys.implementation"은 파이썬 구현에 고유한 추가 어트리뷰트를 포함
   할 수 있습니다. 이러한 비표준 어트리뷰트는 밑줄로 시작해야 하며, 여
   기에서는 설명하지 않습니다. 내용과 관계없이, "sys.implementation"은
   인터프리터 실행 중이나 구현 버전 간에 변경되지 않습니다. (그러나,
   파이썬 언어 버전 간에는 변경될 수 있습니다.) 자세한 정보는 **PEP
   421**을 참조하십시오.

   버전 3.3에 추가.

   참고:

     새로운 필수 어트리뷰트를 추가하려면 일반 PEP 프로세스를 거쳐야 합
     니다. 자세한 정보는 **PEP 421**을 참조하십시오.

sys.int_info

   파이썬의 정수 내부 표현에 대한 정보를 담고 있는 *네임드 튜플*. 어트
   리뷰트는 읽기 전용입니다.

   int_info.bits_per_digit

      The number of bits held in each digit. Python integers are
      stored internally in base "2**int_info.bits_per_digit".

   int_info.sizeof_digit

      The size in bytes of the C type used to represent a digit.

   int_info.default_max_str_digits

      The default value for "sys.get_int_max_str_digits()" when it is
      not otherwise explicitly configured.

   int_info.str_digits_check_threshold

      The minimum non-zero value for "sys.set_int_max_str_digits()",
      "PYTHONINTMAXSTRDIGITS", or "-X int_max_str_digits".

   버전 3.1에 추가.

   버전 3.11에서 변경: Added "default_max_str_digits" and
   "str_digits_check_threshold".

sys.__interactivehook__

   이 어트리뷰트가 존재하면, 대화형 모드로 인터프리터가 시작될 때 해당
   값이 (인자 없이) 자동으로 호출됩니다. 이것은 "PYTHONSTARTUP" 파일을
   읽은 후에 수행되므로, 그곳에서 이 훅을 설정할 수 있습니다. "site"
   모듈은 이것을 설정합니다.

   시작 시 훅이 호출될 때 훅 객체를 인자로 감사 이벤트
   "cpython.run_interactivehook"을 발생시킵니다.

   버전 3.4에 추가.

sys.intern(string)

   "인턴 된(interned)" 문자열 테이블에 *string*을 넣고, *string* 자신
   이거나 사본인 인턴 된 문자열을 반환합니다. 문자열을 인턴 하는 것은
   딕셔너리 조회에서 약간의 성능 개선을 얻는 데 유용합니다 -- 딕셔너리
   의 키가 인턴 되고. 조회 키가 인턴 되면, (해싱 후의) 키 비교는 문자
   열 비교 대신 포인터 비교를 수행 할 수 있습니다. 일반적으로, 파이썬
   프로그램에서 사용되는 이름은 자동으로 인턴 되며, 모듈, 클래스 또는
   인스턴스 어트리뷰트를 담는 데 사용되는 딕셔너리는 인턴 된 키를 갖습
   니다.

   Interned strings are not immortal; you must keep a reference to the
   return value of "intern()" around to benefit from it.

sys.is_finalizing()

   Return "True" if the Python interpreter is *shutting down*, "False"
   otherwise.

   버전 3.5에 추가.

sys.last_type
sys.last_value
sys.last_traceback

   These three variables are not always defined; they are set when an
   exception is not handled and the interpreter prints an error
   message and a stack traceback. Their intended use is to allow an
   interactive user to import a debugger module and engage in post-
   mortem debugging without having to re-execute the command that
   caused the error.  (Typical use is "import pdb; pdb.pm()" to enter
   the post-mortem debugger; see "pdb" module for more information.)

   The meaning of the variables is the same as that of the return
   values from "exc_info()" above.

sys.maxsize

   "Py_ssize_t" 형의 변수가 취할 수 있는 최댓값을 제공하는 정수. 일반
   적으로 32비트 플랫폼에서는 "2**31 - 1"이고 64비트 플랫폼에서는
   "2**63 - 1"입니다.

sys.maxunicode

   가장 큰 유니코드 코드 포인트의 값을 제공하는 정수, 즉 "1114111" (16
   진수로 "0x10FFFF").

   버전 3.3에서 변경: **PEP 393** 이전에는, 유니코드 문자가 UCS-2와
   UCS-4 중 어는 것으로 저장되었는지를 지정하는 구성 옵션에 따라,
   "sys.maxunicode"는 "0xFFFF"나 "0x10FFFF"이었습니다.

sys.meta_path

   A list of *meta path finder* objects that have their "find_spec()"
   methods called to see if one of the objects can find the module to
   be imported. By default, it holds entries that implement Python's
   default import semantics. The "find_spec()" method is called with
   at least the absolute name of the module being imported. If the
   module to be imported is contained in a package, then the parent
   package's "__path__" attribute is passed in as a second argument.
   The method returns a *module spec*, or "None" if the module cannot
   be found.

   더 보기:

     "importlib.abc.MetaPathFinder"
        "meta_path"에 있는 파인더 객체의 인터페이스를 정의하는 추상 베
        이스 클래스.

     "importlib.machinery.ModuleSpec"
        "find_spec()"이 이 구상 클래스의 인스턴스를 반환해야 합니다.

   버전 3.4에서 변경: *Module specs* were introduced in Python 3.4, by
   **PEP 451**. Earlier versions of Python looked for a method called
   "find_module()". This is still called as a fallback if a
   "meta_path" entry doesn't have a "find_spec()" method.

sys.modules

   This is a dictionary that maps module names to modules which have
   already been loaded.  This can be manipulated to force reloading of
   modules and other tricks. However, replacing the dictionary will
   not necessarily work as expected and deleting essential items from
   the dictionary may cause Python to fail.  If you want to iterate
   over this global dictionary always use "sys.modules.copy()" or
   "tuple(sys.modules)" to avoid exceptions as its size may change
   during iteration as a side effect of code or activity in other
   threads.

sys.orig_argv

   The list of the original command line arguments passed to the
   Python executable.

   The elements of "sys.orig_argv" are the arguments to the Python
   interpreter, while the elements of "sys.argv" are the arguments to
   the user's program. Arguments consumed by the interpreter itself
   will be present in "sys.orig_argv" and missing from "sys.argv".

   버전 3.10에 추가.

sys.path

   모듈의 검색 경로를 지정하는 문자열 리스트. 환경 변수 "PYTHONPATH"와
   설치 종속 기본값으로 초기화되었습니다.

   By default, as initialized upon program startup, a potentially
   unsafe path is prepended to "sys.path" (*before* the entries
   inserted as a result of "PYTHONPATH"):

   * "python -m module" command line: prepend the current working
     directory.

   * "python script.py" command line: prepend the script's directory.
     If it's a symbolic link, resolve symbolic links.

   * "python -c code" and "python" (REPL) command lines: prepend an
     empty string, which means the current working directory.

   To not prepend this potentially unsafe path, use the "-P" command
   line option or the "PYTHONSAFEPATH" environment variable.

   A program is free to modify this list for its own purposes.  Only
   strings should be added to "sys.path"; all other data types are
   ignored during import.

   더 보기:

     * 모듈 "site". 이것은 .pth 파일을 사용하여 "sys.path"를 확장하는
       방법에 관해 설명합니다.

sys.path_hooks

   경로 인자를 취해서 경로를 위한 *파인더*를 만들려고 시도하는 콜러블
   의 리스트. 파인더를 만들 수 있으면, 콜러블이 반환하고, 그렇지 않으
   면 "ImportError"를 발생시킵니다.

   원래 **PEP 302**에서 지정되었습니다.

sys.path_importer_cache

   *파인더* 객체의 캐시 역할을 하는 딕셔너리. 키는 "sys.path_hooks"에
   전달된 경로이며 값은 찾은 파인더입니다. 경로가 유효한 파일 시스템
   경로이지만 "sys.path_hooks"에 파인더가 없으면 "None"이 저장됩니다.

   원래 **PEP 302**에서 지정되었습니다.

   버전 3.3에서 변경: "None" is stored instead of "imp.NullImporter"
   when no finder is found.

sys.platform

   This string contains a platform identifier that can be used to
   append platform-specific components to "sys.path", for instance.

   For Unix systems, except on Linux and AIX, this is the lowercased
   OS name as returned by "uname -s" with the first part of the
   version as returned by "uname -r" appended, e.g. "'sunos5'" or
   "'freebsd8'", *at the time when Python was built*.  Unless you want
   to test for a specific system version, it is therefore recommended
   to use the following idiom:

      if sys.platform.startswith('freebsd'):
          # FreeBSD-specific code here...
      elif sys.platform.startswith('linux'):
          # Linux-specific code here...
      elif sys.platform.startswith('aix'):
          # AIX-specific code here...

   For other systems, the values are:

   +------------------+-----------------------------+
   | 시스템           | "platform" 값               |
   |==================|=============================|
   | AIX              | "'aix'"                     |
   +------------------+-----------------------------+
   | Emscripten       | "'emscripten'"              |
   +------------------+-----------------------------+
   | 리눅스           | "'linux'"                   |
   +------------------+-----------------------------+
   | WASI             | "'wasi'"                    |
   +------------------+-----------------------------+
   | 윈도우           | "'win32'"                   |
   +------------------+-----------------------------+
   | 윈도우/Cygwin    | "'cygwin'"                  |
   +------------------+-----------------------------+
   | 맥 OS            | "'darwin'"                  |
   +------------------+-----------------------------+

   버전 3.3에서 변경: On Linux, "sys.platform" doesn't contain the
   major version anymore. It is always "'linux'", instead of
   "'linux2'" or "'linux3'".  Since older Python versions include the
   version number, it is recommended to always use the "startswith"
   idiom presented above.

   버전 3.8에서 변경: On AIX, "sys.platform" doesn't contain the major
   version anymore. It is always "'aix'", instead of "'aix5'" or
   "'aix7'".  Since older Python versions include the version number,
   it is recommended to always use the "startswith" idiom presented
   above.

   더 보기:

     "os.name" has a coarser granularity.  "os.uname()" gives system-
     dependent version information.

     "platform" 모듈은 시스템 식별자에 대한 상세한 검사를 제공합니다.

sys.platlibdir

   플랫폼별 라이브러리 디렉터리의 이름. 표준 라이브러리의 경로와 설치
   된 확장 모듈들의 경로를 빌드하는 데 사용됩니다.

   대부분의 플랫폼에서 ""lib""와 같습니다. Fedora와 SuSE에서는, 64비트
   플랫폼에서 ""lib64""와 같으며 다음과 같은 "sys.path" 경로를 제공합
   니다 ("X.Y"는 파이썬 "major.minor" 버전):

   * "/usr/lib64/pythonX.Y/": 표준 라이브러리 ("os" 모듈의 "os.py"와
     같은)

   * "/usr/lib64/pythonX.Y/lib-dynload/": 표준 라이브러리의 C 확장 모
     듈 ("errno" 모듈과 같은, 정확한 파일 이름은 플랫폼에 따라 다릅니
     다)

   * "/usr/lib/pythonX.Y/site-packages/" (항상 "lib"를 사용합니다,
     "sys.platlibdir"이 아닙니다): 제삼자 모듈

   * "/usr/lib64/pythonX.Y/site-packages/": 제삼자 패키지의 C 확장 모
     듈

   버전 3.9에 추가.

sys.prefix

   A string giving the site-specific directory prefix where the
   platform independent Python files are installed; on Unix, the
   default is "/usr/local". This can be set at build time with the "--
   prefix" argument to the **configure** script.  See 설치 경로 for
   derived paths.

   참고:

     가상 환경이 유효하면, 이 값은 "site.py"에서 가상 환경을 가리키도
     록 변경됩니다. 파이썬 설치 값은 "base_prefix"를 통해 계속 사용할
     수 있습니다.

sys.ps1
sys.ps2

   인터프리터의 기본과 보조 프롬프트를 지정하는 문자열. 인터프리터가
   대화형 모드일 때만 정의됩니다. 이 경우 초깃값은 "'>>> '"과 "'... '"
   입니다. 문자열이 아닌 객체가 어느 변수에라도 지정되면, 인터프리터가
   새 대화식 명령을 읽을 준비를 할 때마다 그 객체의 "str()"이 재평가됩
   니다; 동적 프롬프트를 구현하는 데 사용할 수 있습니다.

sys.setdlopenflags(n)

   Set the flags used by the interpreter for "dlopen()" calls, such as
   when the interpreter loads extension modules.  Among other things,
   this will enable a lazy resolving of symbols when importing a
   module, if called as "sys.setdlopenflags(0)".  To share symbols
   across extension modules, call as
   "sys.setdlopenflags(os.RTLD_GLOBAL)".  Symbolic names for the flag
   values can be found in the "os" module ("RTLD_*xxx*" constants,
   e.g. "os.RTLD_LAZY").

   Availability: Unix.

sys.set_int_max_str_digits(maxdigits)

   Set the integer string conversion length limitation used by this
   interpreter. See also "get_int_max_str_digits()".

   버전 3.11에 추가.

sys.setprofile(profilefunc)

   시스템의 프로파일 함수를 설정합니다. 파이썬에서 파이썬 소스 코드 프
   로파일러를 구현할 수 있도록 합니다. 파이썬 프로파일러에 대한 자세한
   내용은 파이썬 프로파일러 장을 참조하십시오. 시스템의 프로파일 함수
   는 시스템의 추적 함수("settrace()"를 참조하십시오)와 유사하게 호출
   되지만, 다른 이벤트로 호출됩니다, 예를 들어 이 함수는 실행되는 줄마
   다 호출되지 않습니다 (오직 호출과 반환에서만 호출됩니다만, 예외가
   설정되었을 때도 반환 이벤트가 보고됩니다). 이 함수는 스레드로 한정
   되지만, 프로파일러가 스레드 간의 컨텍스트 전환에 대해 알 방법이 없
   어서, 여러 스레드가 있을 때 이를 사용하는 것은 의미가 없습니다. 또
   한, 반환 값이 사용되지 않아서, 단순히 "None"을 반환할 수 있습니다.
   프로파일 함수에서 에러가 발생하면 설정이 해제됩니다.

   참고:

     The same tracing mechanism is used for "setprofile()" as
     "settrace()". To trace calls with "setprofile()" inside a tracing
     function (e.g. in a debugger breakpoint), see "call_tracing()".

   프로파일 함수에는 세 가지 인자가 있습니다: *frame*, *event* 및
   *arg*. *frame*은 현재 스택 프레임입니다. *event*는 문자열입니다:
   "'call'", "'return'", "'c_call'", "'c_return'" 또는
   "'c_exception'". *arg*는 이벤트 유형에 따라 다릅니다.

   이벤트의 의미는 다음과 같습니다:

   "'call'"
      함수가 호출되었습니다 (또는 다른 코드 블록에 진입했습니다). 프로
      파일 함수가 호출됩니다; *arg*는 "None"입니다.

   "'return'"
      함수(또는 다른 코드 블록)가 반환하려고 합니다. 프로파일 함수가
      호출됩니다; *arg*는 반환될 값이거나, 예외가 발생하여 이벤트가 발
      생한 경우는 "None"입니다.

   "'c_call'"
      C 함수를 호출하려고 합니다. 확장 함수나 내장일 수 있습니다.
      *arg*는 C 함수 객체입니다.

   "'c_return'"
      C 함수가 반환했습니다. *arg*는 C 함수 객체입니다.

   "'c_exception'"
      C 함수에서 예외가 발생했습니다. *arg*는 C 함수 객체입니다.

   인자 없이 감사 이벤트 "sys.setprofile"을 발생시킵니다.

sys.setrecursionlimit(limit)

   파이썬 인터프리터 스택의 최대 깊이를 *limit*로 설정합니다. 이 제한
   은 무한 재귀로 인해 C 스택의 오버플로가 발생하고 파이썬이 충돌하는
   것을 방지합니다.

   가능한 최대 제한은 플랫폼에 따라 다릅니다. 사용자는 깊은 재귀가 필
   요한 프로그램과 더 높은 제한을 지원하는 플랫폼이 있을 때 제한을 더
   높게 설정해야 할 수 있습니다. 제한이 너무 높으면 충돌이 발생할 수
   있기 때문에, 주의해서 사용해야 합니다.

   현재 재귀 깊이에서 새 제한이 너무 낮으면 "RecursionError" 예외가 발
   생합니다.

   버전 3.5.1에서 변경: 현재 재귀 깊이에서 새 한계가 너무 낮으면 이제
   "RecursionError" 예외가 발생합니다.

sys.setswitchinterval(interval)

   인터프리터의 스레드 전환 간격을 (초 단위로) 설정합니다. 이 부동 소
   수점 값은 동시에 실행 중인 파이썬 스레드에 할당된 "시 분할
   (timeslices)"의 이상적인 지속 시간을 결정합니다. 특히 오래 실행되는
   내부 함수나 메서드가 사용된다면, 실제 값은 더 클 수 있음에 유의하십
   시오. 또한, 간격이 끝날 때 어떤 스레드가 예약되는지는 운영 체제의
   결정입니다. 인터프리터에는 자체 스케줄러가 없습니다.

   버전 3.2에 추가.

sys.settrace(tracefunc)

   시스템의 추적 함수를 설정합니다. 파이썬에서 파이썬 소스 코드 디버거
   를 구현할 수 있도록 합니다. 이 함수는 스레드로 한정됩니다; 디버거가
   여러 스레드를 지원하려면, 디버깅 중인 각 스레드에 대해 "settrace()"
   를 사용하여 추적 함수를 등록하거나, "threading.settrace()"를 사용해
   야 합니다.

   추적 함수에는 세 개의 인자가 있습니다: *frame*, *event* 및 *arg*.
   *frame*은 현재 스택 프레임입니다. *event*는 문자열입니다: "'call'",
   "'line'", "'return'", "'exception'" 또는 "'opcode'". *arg*는 이벤트
   유형에 따라 다릅니다.

   추적 함수는 새로운 로컬 스코프에 진입할 때마다 호출됩니다 (*event*
   가 "'call'"로 설정됩니다); 새 스코프에서 사용될 지역 추적 함수
   (local trace function)에 대한 참조를 반환하거나, 스코프를 추적하지
   않아야 하면 "None"을 반환해야 합니다.

   The local trace function should return a reference to itself, or to
   another function which would then be used as the local trace
   function for the scope.

   추적 함수에서 에러가 발생하면, "settrace(None)"이 호출되는 것처럼
   설정이 해제됩니다.

   참고:

     Tracing is disabled while calling the trace function (e.g. a
     function set by "settrace()"). For recursive tracing see
     "call_tracing()".

   이벤트의 의미는 다음과 같습니다:

   "'call'"
      함수가 호출되었습니다 (또는 다른 코드 블록에 진입했습니다). 전역
      추적 함수가 호출됩니다; *arg*는 "None"입니다; 반환 값은 지역 추
      적 함수를 지정합니다.

   "'line'"
      The interpreter is about to execute a new line of code or re-
      execute the condition of a loop.  The local trace function is
      called; *arg* is "None"; the return value specifies the new
      local trace function.  See "Objects/lnotab_notes.txt" for a
      detailed explanation of how this works. Per-line events may be
      disabled for a frame by setting "f_trace_lines" to "False" on
      that frame.

   "'return'"
      함수(또는 다른 코드 블록)가 반환하려고 합니다. 지역 추적 함수가
      호출됩니다; *arg*는 반환될 값이거나, 예외가 발생하여 이벤트가 발
      생한 경우는 "None"입니다. 추적 함수의 반환 값은 무시됩니다.

   "'exception'"
      예외가 발생했습니다. 지역 추적 함수가 호출됩니다; *arg*는 튜플
      "(exception, value, traceback)"입니다; 반환 값은 새로운 지역 추
      적 함수를 지정합니다.

   "'opcode'"
      The interpreter is about to execute a new opcode (see "dis" for
      opcode details).  The local trace function is called; *arg* is
      "None"; the return value specifies the new local trace function.
      Per-opcode events are not emitted by default: they must be
      explicitly requested by setting "f_trace_opcodes" to "True" on
      the frame.

   호출자 체인을 따라 예외가 전파됨에 따라, 각 수준에서 "'exception'"
   이벤트가 생성됨에 유의하십시오.

   더 세분된 사용을 위해, 이미 설치된 추적 함수의 반환 값을 통해 간접
   적으로 설정되는 것에 의존하는 대신, "frame.f_trace = tracefunc"를
   명시적으로 대입하여 추적 함수를 설정할 수 있습니다. 이것은 현재 프
   레임에서 추적 함수를 활성화하는 데에도 필요한데, "settrace()"가 하
   지 않는 일입니다. 이것이 작동하려면 실행 시간 추적 장치를 활성화하
   기 위해 전역 추적 함수가 "settrace()"로 설치되어 있어야 하지만, 같
   은 추적 함수 일 필요는 없음에 유의하십시오 (예를 들어, 각 프레임에
   서 즉시 비활성화되도록 단순히 "None"을 반환하는 오버헤드가 낮은 추
   적 함수일 수 있습니다).

   코드와 프레임 객체에 대한 자세한 내용은 표준형 계층를 참조하십시오.

   인자 없이 감사 이벤트 "sys.settrace"를 발생시킵니다.

   **CPython 구현 상세:** "settrace()" 함수는 오직 디버거, 프로파일러,
   커버리지(coverage) 도구 등을 구현하기 위한 것입니다. 그 동작은 언어
   정의의 일부라기보다는 구현 플랫폼의 일부라서, 모든 파이썬 구현에서
   사용 가능한 것은 아닙니다.

   버전 3.7에서 변경: "'opcode'" event type added; "f_trace_lines" and
   "f_trace_opcodes" attributes added to frames

sys.set_asyncgen_hooks([firstiter] [, finalizer])

   두 개의 선택적 키워드 인자를 받아들이는데, 모두 *비동기 제너레이터
   이터레이터*를 인자로 받아들이는 콜러블입니다. 비동기 제너레이터가
   처음으로 이터레이트 될 때 *firstiter* 콜러블이 호출됩니다. 비동기
   제너레이터가 가비지 수거될 때 *finalizer*가 호출됩니다.

   인자 없이 감사 이벤트 "sys.set_asyncgen_hooks_firstiter"를 발생시킵
   니다.

   인자 없이 감사 이벤트 "sys.set_asyncgen_hooks_finalizer"를 발생시킵
   니다.

   하부 API는 두 개의 호출로 구성되기 때문에, 두 개의 감사 이벤트가 발
   생합니다, 각각은 자체 이벤트를 발생시켜야 합니다.

   버전 3.6에 추가: 자세한 내용은 **PEP 525**를 참조하고, *finalizer*
   메서드의 참조 예제는 Lib/asyncio/base_events.py의
   "asyncio.Loop.shutdown_asyncgens" 구현을 참조하십시오.

   참고:

     이 함수는 잠정적(provisional)으로 추가되었습니다 (자세한 내용은
     **PEP 411**을 참조하십시오).

sys.set_coroutine_origin_tracking_depth(depth)

   Allows enabling or disabling coroutine origin tracking. When
   enabled, the "cr_origin" attribute on coroutine objects will
   contain a tuple of (filename, line number, function name) tuples
   describing the traceback where the coroutine object was created,
   with the most recent call first. When disabled, "cr_origin" will be
   None.

   활성화하려면, 0보다 큰 *depth* 값을 전달하십시오; 정보를 캡처할 프
   레임 수를 설정합니다. 비활성화하려면, *depth*를 0으로 전달하십시오.

   이 설정은 스레드에 한정됩니다.

   버전 3.7에 추가.

   참고:

     이 함수는 잠정적(provisional)으로 추가되었습니다 (자세한 내용은
     **PEP 411**을 참조하십시오). 디버깅 목적으로만 사용하십시오.

sys._enablelegacywindowsfsencoding()

   Changes the *filesystem encoding and error handler* to 'mbcs' and
   'replace' respectively, for consistency with versions of Python
   prior to 3.6.

   이것은 파이썬을 시작하기 전에 "PYTHONLEGACYWINDOWSFSENCODING" 환경
   변수를 정의하는 것과 동등합니다.

   See also "sys.getfilesystemencoding()" and
   "sys.getfilesystemencodeerrors()".

   Availability: Windows.

   버전 3.6에 추가: 자세한 내용은 **PEP 529**를 참조하십시오.

sys.stdin
sys.stdout
sys.stderr

   인터프리터가 표준 입력, 출력 및 에러에 사용하는 *파일 객체*:

   * "stdin"는 모든 대화식 입력에 사용됩니다 ("input()" 호출을 포함합
     니다);

   * "stdout"은 "print()"와 *표현식* 문장의 출력과 "input()"의 프롬프
     트에 사용됩니다;

   * 인터프리터 자신의 프롬프트와 에러 메시지는 "stderr"로 갑니다.

   이 스트림은 "open()" 함수에 의해 반환되는 것과 같은 일반적인 *텍스
   트 파일*입니다. 매개 변수는 다음과 같이 선택됩니다:

   * The encoding and error handling are is initialized from
     "PyConfig.stdio_encoding" and "PyConfig.stdio_errors".

     On Windows, UTF-8 is used for the console device.  Non-character
     devices such as disk files and pipes use the system locale
     encoding (i.e. the ANSI codepage).  Non-console character devices
     such as NUL (i.e. where "isatty()" returns "True") use the value
     of the console input and output codepages at startup,
     respectively for stdin and stdout/stderr. This defaults to the
     system *locale encoding* if the process is not initially attached
     to a console.

     파이썬을 시작하기 전에 환경 변수 PYTHONLEGACYWINDOWSSTDIO를 설정
     하여 콘솔의 특수 동작을 재정의할 수 있습니다. 이 경우, 콘솔 코드
     페이지는 다른 모든 문자 장치에서처럼 사용됩니다.

     모든 플랫폼에서, 파이썬을 시작하기 전에 "PYTHONIOENCODING" 환경
     변수를 설정하거나 새로운 "-X" "utf8" 명령 줄 옵션과 "PYTHONUTF8"
     환경 변수를 사용하여 문자 인코딩을 재정의할 수 있습니다. 그러나,
     윈도우 콘솔의 경우, "PYTHONLEGACYWINDOWSSTDIO" 도 설정했을 때만
     적용됩니다.

   * 대화형일 때, "stdout" 스트림은 줄 버퍼링 됩니다. 그렇지 않으면,
     일반 텍스트 파일처럼 블록 버퍼링 됩니다. "stderr" 스트림은 두 경
     우 모두 줄 버퍼링 됩니다. "-u" 명령 줄 옵션을 전달하거나
     "PYTHONUNBUFFERED" 환경 변수를 설정하여 두 스트림을 모두 버퍼링하
     지 않을 수 있습니다.

   버전 3.9에서 변경: 비 대화형 "stderr"은 이제 완전히 버퍼링 되는 대
   신 줄 버퍼링 됩니다.

   참고:

     표준 스트림에서 바이너리 데이터를 읽거나 표준 스트림으로 바이너리
     데이터를 쓰려면, 하부 바이너리 "buffer" 객체를 사용하십시오. 예를
     들어, 바이트열을 "stdout"에 쓰려면,
     "sys.stdout.buffer.write(b'abc')"를 사용하십시오.However, if you
     are writing a library (and do not control in which context its
     code will be executed), be aware that the standard streams may be
     replaced with file-like objects like "io.StringIO" which do not
     support the "buffer" attribute.

sys.__stdin__
sys.__stdout__
sys.__stderr__

   이 객체는 프로그램 시작 시 "stdin", "stderr" 및 "stdout"의 원래 값
   을 포함합니다. 이들은 파이널리제이션 중에 사용되며, "sys.std*" 객체
   가 리디렉션 되었는지에 관계없이 실제 표준 스트림으로 인쇄하는 데 유
   용할 수 있습니다.

   또한 잘못된 객체로 덮어쓴 경우 실제 파일을 알려진 작동하는 파일 객
   체로 복원하는 데 사용할 수 있습니다. 그러나, 이를 수행하기 위해 선
   호되는 방법은 이전 스트림을 교체하기 전에 명시적으로 저장하고, 저장
   된 객체를 복원하는 것입니다.

   참고:

     일부 조건에서, "stdin", "stdout" 및 "stderr" 뿐만 아니라 원래 값
     "__stdin__", "__stdout__" 및 "__stderr__"은 "None"일 수 있습니다.
     보통 콘솔에 연결되지 않은 윈도우 GUI 앱과 **pythonw**로 시작된 파
     이썬 앱이 이런 경우입니다.

sys.stdlib_module_names

   A frozenset of strings containing the names of standard library
   modules.

   It is the same on all platforms. Modules which are not available on
   some platforms and modules disabled at Python build are also
   listed. All module kinds are listed: pure Python, built-in, frozen
   and extension modules. Test modules are excluded.

   For packages, only the main package is listed: sub-packages and
   sub-modules are not listed. For example, the "email" package is
   listed, but the "email.mime" sub-package and the "email.message"
   sub-module are not listed.

   See also the "sys.builtin_module_names" list.

   버전 3.10에 추가.

sys.thread_info

   스레드 구현에 대한 정보를 담은 *네임드 튜플*.

   thread_info.name

      The name of the thread implementation:

      * ""nt"": Windows threads

      * ""pthread"": POSIX threads

      * ""pthread-stubs"": stub POSIX threads (on WebAssembly
        platforms without threading support)

      * ""solaris"": Solaris threads

   thread_info.lock

      The name of the lock implementation:

      * ""semaphore"": a lock uses a semaphore

      * ""mutex+cond"": a lock uses a mutex and a condition variable

      * 이 정보를 알 수 없으면 "None"

   thread_info.version

      The name and version of the thread library. It is a string, or
      "None" if this information is unknown.

   버전 3.3에 추가.

sys.tracebacklimit

   이 변수가 정숫값으로 설정되면, 처리되지 않은 예외가 발생할 때 인쇄
   되는 트레이스백 정보의 최대 수준 수를 결정합니다. 기본값은 "1000"입
   니다. "0" 이하로 설정하면, 모든 트레이스백 정보가 억제되고 예외 형
   과 값만 인쇄됩니다.

sys.unraisablehook(unraisable, /)

   발생시킬 수 없는 예외(unraisable exception)를 처리합니다.

   예외가 발생했지만, 파이썬이 예외를 처리할 방법이 없을 때 호출됩니다
   . 예를 들어, 파괴자가 예외를 발생시키거나 가비지 수거
   ("gc.collect()") 중에.

   *unraisable* 인자에는 다음과 같은 어트리뷰트가 있습니다:

   * "exc_type": Exception type.

   * "exc_value": Exception value, can be "None".

   * "exc_traceback": Exception traceback, can be "None".

   * "err_msg": Error message, can be "None".

   * "object": Object causing the exception, can be "None".

   The default hook formats "err_msg" and "object" as: "f'{err_msg}:
   {object!r}'"; use "Exception ignored in" error message if "err_msg"
   is "None".

   "sys.unraisablehook()" 은 발생시킬 수 없는 예외 처리 방법을 제어하
   기 위해 재정의될 수 있습니다.

   더 보기: "excepthook()" which handles uncaught exceptions.

   경고:

     Storing "exc_value" using a custom hook can create a reference
     cycle. It should be cleared explicitly to break the reference
     cycle when the exception is no longer needed.Storing "object"
     using a custom hook can resurrect it if it is set to an object
     which is being finalized. Avoid storing "object" after the custom
     hook completes to avoid resurrecting objects.

   Raise an auditing event "sys.unraisablehook" with arguments *hook*,
   *unraisable* when an exception that cannot be handled occurs. The
   *unraisable* object is the same as what will be passed to the hook.
   If no hook has been set, *hook* may be "None".

   버전 3.8에 추가.

sys.version

   파이썬 인터프리터의 버전 번호와 빌드 번호 및 사용된 컴파일러에 대한
   추가 정보가 포함된 문자열. 이 문자열은 대화식 인터프리터가 시작될
   때 표시됩니다. 여기서 버전 정보를 추출하지 말고, "version_info"와
   "platform" 모듈이 제공하는 함수를 사용하십시오.

sys.api_version

   이 인터프리터의 C API 버전. 프로그래머는 파이썬과 확장 모듈 간의 버
   전 충돌을 디버깅할 때 이것이 유용할 수 있습니다.

sys.version_info

   버전 번호의 5가지 구성 요소를 포함하는 튜플: *major*, *minor*,
   *micro*, *releaselevel* 및 *serial*. *releaselevel*을 제외한 모든
   값은 정수입니다; 릴리스 수준은 "'alpha'", "'beta'", "'candidate'"
   또는 "'final'"입니다. 파이썬 버전 2.0에 해당하는 "version_info" 값
   은 "(2, 0, 0, 'final', 0)"입니다. 구성 요소는 이름으로도 액세스 할
   수 있어서, "sys.version_info[0]"는 "sys.version_info.major"와 동등
   합니다.

   버전 3.1에서 변경: 이름있는 구성 요소 어트리뷰트를 추가했습니다.

sys.warnoptions

   이것은 경고 프레임워크의 구현 세부 사항입니다; 이 값을 수정하지 마
   십시오. 경고 프레임워크에 대한 자세한 정보는 "warnings" 모듈을 참조
   하십시오.

sys.winver

   The version number used to form registry keys on Windows platforms.
   This is stored as string resource 1000 in the Python DLL.  The
   value is normally the major and minor versions of the running
   Python interpreter.  It is provided in the "sys" module for
   informational purposes; modifying this value has no effect on the
   registry keys used by Python.

   Availability: Windows.

sys._xoptions

   "-X" 명령 줄 옵션을 통해 전달된 다양한 구현 특정 플래그의 딕셔너리.
   옵션 이름은 명시적으로 지정되면 그들의 값으로, 그렇지 않으면 "True"
   로 매핑됩니다. 예:

      $ ./python -Xa=b -Xc
      Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50)
      [GCC 4.4.3] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import sys
      >>> sys._xoptions
      {'a': 'b', 'c': True}

   **CPython 구현 상세:** 이는 "-X"를 통해 전달된 옵션에 액세스하는
   CPython 특정 방법입니다. 다른 구현은 다른 수단을 통해, 또는 전혀 노
   출하지 않을 수 있습니다.

   버전 3.2에 추가.

-[ 인용 ]-

[C99] ISO/IEC 9899:1999.  "Programming languages -- C."  A public
      draft of this standard is available at https://www.open-
      std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.
