Python 코드 편집 및 Intellisense 사용

사용자는 코드 편집기에서 많은 개발 시간을 보내므로 Visual Studio의 Python 지원에서 생산성 향상에 도움이 되는 기능을 제공합니다. 이러한 기능에는 IntelliSense 구문 강조 표시, 자동 완성, 시그니처 도움말, 메서드 재정의/검색 및 탐색이 포함됩니다.

코드 편집기는 Visual Studio의 대화형 창과 통합됩니다. 작업하면서 두 창 간에 코드를 쉽게 교환할 수 있습니다. 자세한 정보는 자습서 3단계: 대화형 REPL 창 사용대화형 창 사용 - 대화형 명령에 보내기를 참조하세요.

코드의 특정 섹션에 집중하는 데 도움이 되는 개요를 참조하세요. Visual Studio의 코드 편집에 대한 일반적인 설명서는 코드 편집기의 기능을 참조하세요.

Visual Studio 개체 브라우저를 사용하여 각 모듈에 정의된 Python 클래스와 해당 클래스에 정의된 함수를 검사할 수 있습니다. 보기 메뉴 또는 바로 가기 키 Ctrl+Alt+J를 사용하여 이 기능에 액세스할 수 있습니다.

IntelliSense 기능 사용

IntelliSense는 완성, 서명 도움말, 요약 정보코드 색 지정을 제공합니다. Visual Studio 2017 버전 15.7 이상은 형식 힌트도 지원합니다.

성능을 향상시키기 위해 Visual Studio 2017 버전 15.5 이하의 IntelliSense는 프로젝트의 각 Python 환경에 대해 생성된 완성 데이터베이스를 사용합니다. 패키지를 추가, 제거 또는 업데이트할 경우 데이터베이스를 새로 고쳐야 할 수 있습니다. 데이터베이스 상태는 Python 환경 창(솔루션 탐색기의 컴패니언)의 IntelliSense 탭에 표시됩니다(환경 창 참조 확인).

Visual Studio 2017 버전 15.6 및 이후 버전에서는 데이터베이스에 종속되지 않는 IntelliSense 완성을 제공하는 다른 방법을 사용합니다.

완성

완성은 문, 식별자 및 편집기의 현재 위치에 적절히 입력될 수 있는 다른 단어로 표시됩니다. Intellisense는 컨텍스트에 따라 옵션 목록을 채우고 잘못되거나 방해가 되는 항목을 필터링합니다. 완성은 종종 다른 문(예: import) 및 연산자(마침표 포함)를 입력하여 트리거되지만, 언제든지 바로 가기 키 Ctrl+J +스페이스 키를 눌러 표시되도록 할 수 있습니다.

Visual Studio 편집기에서 Intellisense를 통한 구성원 완성을 보여 주는 스크린샷.

완성 목록이 열리면 화살표 키와 마우스를 사용하거나 계속 입력하여 원하는 완성을 검색할 수 있습니다. 더 많은 글자를 입력함에 따라 목록이 자세히 필터링되어 더 확실한 완성을 보여 줍니다. 다음과 같은 바로 가기를 사용할 수도 있습니다.

  • 'parse'와 같이 이름의 시작 부분에 없는 글자를 입력하면 'argparse'를 찾습니다.
  • 'abc'와 같이 단어의 시작 부분에 있는 글자만 입력하면 'AbstractBaseClass'를 찾거나 'air'를 입력하면 'as_integer_ratio'를 찾습니다.
  • 'b64'와 같이 문자를 건너뛰면 'base64'를 찾습니다.

다음 몇 가지 예를 참조하세요.

Visual Studio 편집기에서 필터링을 통해 구성원 완성을 보여주는 스크린샷.

변수 또는 값 뒤에 마침표를 입력하면 멤버 완성이 자동으로 표시되어 잠재적인 형식의 메서드와 특성을 보여줍니다. 변수가 둘 이상의 형식일 수 있는 경우 목록에는 모든 형식의 모든 가능성이 포함됩니다. 각 완료를 지원하는 형식을 나타내는 추가 정보가 표시됩니다. 가능한 모든 형식이 완성을 지원하는 경우 주석이 표시되지 않습니다.

Visual Studio 편집기의 여러 유형에 대한 구성원 완성을 보여 주는 스크린샷.

기본적으로 “dunder” 구성원(이중 밑줄로 시작하고 끝나는 구성원)은 표시되지 않습니다. 일반적으로 해당 구성원은 직접 액세스하면 안 됩니다. dunder를 사용해야 하는 경우 앞에 이중 밑줄을 입력하여 이러한 완성 항목을 목록에 추가합니다.

Visual Studio 편집기의 개인 dunder 구성원 완료 유형을 보여 주는 스크린샷.

importfrom ... import 문은 가져올 수 있는 모듈의 목록을 표시합니다. from ... import 문은 지정된 모듈에서 가져올 수 있는 구성원이 포함된 목록을 생성합니다.

Visual Studio 편집기에서 가져오기 및 가져오기 완료를 보여 주는 스크린샷.

raiseexcept 문은 오류 형식이 될 수 있는 클래스의 목록을 표시합니다. 목록에 모든 사용자 정의 예외가 포함되지는 않지만, 적합한 기본 제공 예외를 빠르게 찾을 수 있습니다.

Visual Studio 편집기에서 예외 완성을 보여주는 스크린샷.

@ 기호를 선택하면 decorator가 시작되고 잠재적인 decorator가 표시됩니다. 이러한 항목의 대부분은 decorator로 사용할 수 없습니다. 라이브러리 설명서를 확인하여 사용할 decorator를 정합니다.

Visual Studio 편집기에서 decorator 완성을 보여주는 스크린샷.

자세한 정보는 옵션 - 완성 결과를 참조하세요.

형식 힌트

형식 힌트는 Visual Studio 2017 버전 15.7 이상에서 사용할 수 있습니다.

Python 3.5+(PEP 484 (python.org)의 "형식 힌트”는 인수 형식, 반환 값, 클래스 속성을 표시하는 함수와 클래스에 대한 주석 구문입니다. IntelliSense는 함수 호출, 인수 및 해당 주석이 있는 변수 위에 마우스를 가져가면 형식 힌트를 표시합니다.

다음 예제에서는 Vector 클래스가 형식 List[float]로 선언되며 scale 함수가 인수와 반환 값 모두에 대한 형식 힌트를 포함합니다. 해당 함수에 대한 호출 위로 마우스를 가져가면 형식 힌트가 표시됩니다.

형식 힌트를 표시하기 위해 함수 호출 위로 마우스를 가져가는 방법을 보여주는 스크린샷.

다음 예제에서는 Employee 클래스의 주석 처리된 속성이 특성에 대한 IntelliSense 완료 팝업에서 어떻게 표시되는지 확인할 수 있습니다.

형식 힌트가 있는 클래스에 대한 IntelliSense 완성을 보여 주는 스크린샷.

오류는 일반적으로 런타임까지는 표시되지 않기 때문에 프로젝트 전체에서 형식 힌트의 유효성을 검사하는 것이 유용합니다. 이를 위해 Visual Studio는 솔루션 탐색기의 바로 가기 메뉴 명령 Python>Mypy 실행을 통해 업계 표준 Mypy 도구를 통합합니다.

솔루션 탐색기에서 Python 프로젝트에 사용 가능한 린팅 명령을 보여 주는 스크린샷

명령을 실행하면 필요할 경우 Mypy 패키지를 설치하라는 메시지가 표시됩니다. 그런 다음, Visual Studio가 Mypy를 실행하여 프로젝트의 모든 Python 파일에서 형식 힌트의 유효성을 검사합니다. Visual Studio 오류 목록 창에 오류가 표시됩니다. 창에서 항목을 선택하면 코드의 해당 줄로 이동합니다.

간단한 예로 다음 함수 정의에는 input 인수의 형식이 str임을 표시하는 형식 힌트가 포함되어 있으나 이 함수에 대한 호출에서는 정수를 전달하려 합니다.

def commas_to_colons(input: str):
    items = input.split(',')
    items = [x.strip() for x in items]
    return ':'.join(items)

commas_to_colons(1)

이 코드에서 Run Mypy 명령을 사용하면 다음 오류가 생성됩니다.

Mypy 유효성 형식 힌트의 예제 결과를 보여 주는 스크린샷.

참고 항목

Python 3.5 이전 버전의 경우 Visual Studio는 Typeshed ‘스텁 파일’(.pyi)을 통해 사용자가 입력한 형식 힌트도 표시합니다. 코드에 형식 힌트를 직접 포함하지 않고자 하거나, 형식 힌트를 직접 사용하지 않는 라이브러리에 대한 형식 힌트를 만들려는 경우 스텁 파일을 사용할 수 있습니다. 자세한 정보는 Mypy 프로젝트 wiki에서 Python 모듈에 대한 스텁 만들기를 참조하세요.

현재 Visual Studio에서 주석의 형식 힌트를 지원하지 않습니다.

서명 도움말

함수를 호출하는 코드를 작성할 때 여는 괄호 (를 입력하면 서명 도움말이 나타납니다. 사용 가능한 설명서 및 매개 변수 정보를 표시합니다. 함수 호출 내에서 바로 가기 키 Ctrl+Shift+스페이스를 사용하여 서명 도움말에 액세스할 수 있습니다. 표시되는 정보는 함수의 소스 코드에 있는 설명서 문자열에 따라 다르지만 모든 기본값이 포함됩니다.

Visual Studio 편집기에서 서명 도움말을 보여주는 스크린샷.

서명 도움말을 사용하지 않으려면 도구>옵션>텍스트 편집기>Python>일반으로 이동합니다. 문 완성>매개 변수 정보 검사 상자를 지웁니다.

요약 정보

식별자 위로 마우스 포인터를 가져가면 요약 정보 도구 설명이 표시됩니다. 식별자에 따라 요약 정보는 잠재적인 값이나 형식, 사용 가능한 모든 설명서, 반환 형식 및 정의 위치를 표시할 수 있습니다.

Visual Studio 편집기에서 빠른 정보 표시 정보를 보여 주는 스크린샷.

코드 색 지정

코드 색 지정은 코드 분석에서 색 변수, 명령문 및 코드의 다른 부분에 이르는 정보를 사용합니다. 모듈 또는 클래스를 참조하는 변수는 함수 또는 다른 값과 다른 색으로 표시될 수 있습니다. 매개 변수 이름은 지역 또는 전역 변수와 다른 색으로 나타날 수 있습니다. 함수는 기본적으로 굵게 표시되지 않습니다.

Visual Studio 편집기에서 코드 및 구문 색 지정을 보여주는 스크린샷.

색을 사용자 지정하려면 도구>옵션>환경>서체 및 색으로 이동합니다. 표시 항목 목록에서 원하는 Python 항목을 수정합니다.

Visual Studio에서 서체와 색 옵션을 보여주는 스크린샷.

코드 조각 삽입

코드 조각은 바로 가기 키를 사용하고 키를 누르거나 편집>IntelliSense>코드 조각 삽입코드 감싸기 명령을 사용하고 Python을 선택한 다음, 원하는 코드 조각을 선택하여 파일에 삽입할 수 있는 코드의 조각입니다.

예를 들어, class는 클래스 정의를 삽입하는 코드 조각의 바로 가기입니다. class를 입력하면 자동 완성 목록에 코드 조각이 표시됩니다.

클래스 바로 가기에 대한 코드 조각을 보여 주는 스크린샷.

Tab 키를 누르면 나머지 클래스가 생성됩니다. 그런 다음, 이름과 베이스 목록을 입력하고, Tab 키를 사용하여 강조 표시된 필드 사이를 이동하고, Enter 키를 눌러 본문을 입력할 수 있습니다.

완성할 코드 조각 영역의 강조 표시를 보여주는 스크린샷.

편집>IntelliSense>코드 조각 삽입메뉴 명령을 사용하는 경우 먼저 Python을 선택한 다음, 원하는 코드 조각을 선택합니다.

코드 조각 삽입 명령을 통해 코드 조각 선택 방법을 보여주는 스크린샷.

편집>IntelliSense>코드 감싸기 명령도 텍스트 편집기의 현재 선택 내용을 선택한 구조 요소 안에 배치합니다. 다음 예제와 같은 코드가 있다고 가정해 보겠습니다.

sum = 0
for x in range(1, 100):
    sum = sum + x

이 코드를 선택하고 코드 감싸기 명령을 선택하면 사용 가능한 코드 조각 목록이 표시됩니다. 코드 조각 목록에서 def를 선택하면 선택한 코드가 함수 정의 내에 배치됩니다. Tab 키를 사용하여 강조 표시된 함수 이름과 인수 사이를 탐색할 수 있습니다.

코드 조각에 대해 Surround With 명령을 사용하는 방법을 보여 주는 스크린샷.

사용 가능한 코드 조각 검사

코드 조각 관리자에서 사용 가능한 코드 조각을 볼 수 있습니다. 도구>코드 조각 관리자에서 이 기능에 액세스하고 언어로 Python을 선택합니다.

Visual Studio의 코드 조각 관리자를 보여주는 스크린샷.

사용자 고유의 코드 조각을 만들려면 연습: 코드 조각 만들기를 참조하세요.

공유하려는 중요한 코드 조각을 작성하는 경우 자유롭게 요점에 게시하고 알려주세요. 그러면 Visual Studio의 향후 릴리스에 포함할 수 있습니다.

Visual Studio의 Python 지원에서는 소스 코드를 사용할 수 있는 라이브러리를 포함하여 코드 내에서 빠르게 탐색할 수 있는 여러 가지 방법을 제공합니다. 탐색 모음, 정의로 이동, 이동모든 참조 찾기 명령에 대한 소스 코드가 있는 라이브러리를 찾을 수 있습니다. Visual Studio 개체 브라우저를 사용할 수도 있습니다.

탐색 모음은 각 편집기 창의 위쪽에 표시되며, 정의의 2단계 목록을 포함하고 있습니다. 왼쪽 드롭다운에는 현재 파일의 최상위 클래스 및 함수 정의가 포함됩니다. 오른쪽 드롭다운은 왼쪽에 표시된 범위 내의 정의 목록을 표시합니다. 편집기에서 이동하는 대로 목록이 업데이트되어 현재 컨텍스트를 보여 주며, 이러한 목록에서 항목을 선택하여 직접 이동할 수도 있습니다.

Visual Studio 편집기에서 탐색 모음을 보여 주는 스크린샷.

탐색 모음을 숨기려면 도구>옵션>텍스트 편집기>Python>일반으로 이동하여 설정>탐색 모음의 선택을 취소합니다.

정의로 이동

정의로 이동 명령은 식별자(예: 함수 이름, 클래스 또는 변수)를 사용하여 정의된 소스 코드로 빠르게 이동합니다. 명령을 호출하려면 식별자를 마우스 오른쪽 단추로 클릭하여 정의로 이동을 선택하거나 식별자에 캐럿을 배치하고 F12 키를 누릅니다. 명령은 소스 코드를 사용할 수 있는 코드 및 외부 라이브러리에서 작동합니다. 라이브러리 소스 코드를 사용할 수 없는 경우 정의로 이동은 모듈 참조를 위해 관련 import 문으로 건너뛰거나 오류를 표시합니다.

Visual Studio의 정의로 이동 명령을 보여 주는 스크린샷.

이동

편집>다음 탐색 명령(Ctrl+,)은 문자열을 입력하고 해당 문자열을 포함하는 함수, 클래스 또는 변수를 정의하는 코드에서 가능한 일치 항목을 볼 수 있는 검색 상자를 편집기에 표시합니다. 이 기능은 정의로 이동과 비슷한 기능을 제공하지만 식별자를 사용하여 찾을 필요가 없습니다.

이름을 두 번 클릭하거나 화살표 키로 이름을 선택하고 Enter 키를 누르면 해당 식별자의 정의로 이동합니다.

Visual Studio의 이동 명령을 보여 주는 스크린샷.

모든 참조 찾기

모든 참조 찾기 기능은 가져오기 및 할당을 포함하여 지정된 식별자가 정의되고 사용되는 위치를 찾는 유용한 방법입니다. 명령을 호출하려면 식별자를 마우스 오른쪽 단추로 클릭하여 모든 참조 찾기을 선택하거나 식별자에 캐럿을 배치하고 Shift+F12를 누릅니다. 목록에서 항목을 두 번 클릭하면 해당 위치로 이동합니다.

Visual Studio 모든 참조 찾기를 표시하는 스크린샷.