다음을 통해 공유


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 환경에 대해 생성된 완성 데이터베이스에 따라 달라집니다. 패키지를 추가, 제거 또는 업데이트하는 경우 데이터베이스를 새로 고쳐야 할 수 있습니다. 데이터베이스 상태는 IntelliSense 탭의 Python 환경 창(솔루션 탐색기의 도우미)에 표시됩니다. 자세한 내용은 환경 창 참조를 참조하세요.

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

완료

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

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

완성 목록이 열려 있는 경우 화살표 키, 마우스를 사용하거나 입력을 계속하여 원하는 완성을 검색할 수 있습니다. 더 많은 문자를 입력하면 완성 가능성이 표시되도록 목록이 추가로 필터링됩니다. 다음과 같은 바로 가기를 사용할 수도 있습니다.

  • 이름의 시작 부분이 아닌 문자를 입력하세요(예: 'argparse'를 찾기 위한 'parse').
  • 단어의 시작 부분에 있는 문자(예: 'abc' 또는 'air')를 입력하여 'AbstractBaseClass' 또는 'as_integer_ratio'와 같은 단어를 찾습니다.
  • 'b64'와 같은 문자를 건너뛰어 'base64'를 찾습니다.

다음은 몇 가지 예입니다.

Visual Studio 편집기에서 필터링을 사용하여 멤버 완성을 보여 주는 스크린샷

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

Visual Studio 편집기에서 여러 형식의 멤버 완성을 보여 주는 스크린샷

기본적으로 "dunder" 멤버(이중 밑줄로 시작하고 끝나는 멤버)는 표시되지 않습니다. 일반적으로 이러한 멤버는 직접 액세스해서는 안 됩니다. 더블 언더스코어를 사용해야 할 경우, 앞에 있는 이중 밑줄을 입력하여 이러한 완성을 목록에 추가하세요.

Visual Studio 편집기에서 프라이빗 던더 멤버 완료 유형을 보여 주는 스크린샷

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

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

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

Visual Studio 편집기에서 예외 완료를 보여 주는 스크린샷

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

Visual Studio 편집기에서 데코레이터 완성을 보여 주는 스크린샷

자세한 내용은 옵션 - 완료 결과를 참조하세요.

형식 힌트

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

Python 3.5 이상(PEP 484 (python.org)의 "형식 힌트"는 인수, 반환 값 및 클래스 특성의 형식을 나타내는 함수 및 클래스에 대한 주석 구문입니다. IntelliSense는 주석이 있는 함수 호출, 인수 및 변수를 마우스로 가리키면 형식 힌트를 표시합니다.

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

함수 호출을 마우스로 가리키고 형식 힌트를 표시하는 방법을 보여 주는 스크린샷

다음 예제에서는 IntelliSense 완성 팝업에서 클래스 Employee의 주석이 달린 특성이 나타나는 방식을 볼 수 있습니다.

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

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

솔루션 탐색기에서 Python 프로젝트에 사용할 수 있는 Linting 명령을 보여 주는 스크린샷

명령을 실행하면 필요한 경우 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)

이 코드에서 Mypy 실행 명령을 사용하면 다음 오류가 발생합니다.

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

비고

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

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

서명 도움말

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

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

팁 (조언)

서명 도움말을 사용하지 않도록 설정하려면 도구>옵션>텍스트 편집기>Python>일반으로 이동합니다. 문 완성>매개 변수 정보 확인란의 선택을 취소합니다.

빠른 정보

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

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

코드 색 지정

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

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

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

Visual Studio의 글꼴 및 색 옵션을 보여 주는 스크린샷

코드 조각 삽입

코드 조각은 바로 가기 키를 사용하고 Tab을 선택하여 파일에 삽입할 수 있는 코드 조각입니다. 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의 코드 조각 관리자를 보여 주는 스크린샷

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

공유할 훌륭한 코드 조각을 작성했다면, 언제든지 Gist에 게시하고 저희에게 알려주세요. Visual Studio의 향후 릴리스에 포함할 수 있습니다.

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

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

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

팁 (조언)

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

정의로 이동

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

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

로 가다

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

해당 식별자의 정의로 이동하려면 이름을 두 번 클릭하거나 화살표 키와 Enter 키를 차례로 사용하여 이름을 선택합니다.

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

모든 참조 찾기

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

Visual Studio에서 모든 참조 찾기 결과를 보여 주는 스크린샷