파이썬에서 변수/함수 이름을 지을 때 규칙이 있나요?


C#에서는 변수/함수 이름을 지을 때 CamelCase, PascalCase이런 식으로 암묵적인 규칙이 있었는데 python에서도 이런 규칙이 있는지 궁금합니다.

C# 예 :

string thisIsMyVariable = "a" public void ThisIsMyMethod()

python 예:

this_is_my_variable = 'a' def this_is_my_function():

  • 2016년 01월 19일에 작성됨

조회수 551


1 답변


좋아요
0
싫어요
채택취소하기

PEP 8을 간단하게 요약하면

피해야 할 이름 :

  • 소문자 l, 대문자 O, 대문자 I하나만 변수의 이름으로 쓰는 것은 권장하지 않습니다. 특정 폰트에서 헷갈릴수도 있기 때문입니다.

패키지와 모듈의 이름 :

  • 모듈 이름은 짧아야 하고, 전부 소문자 여야 합니다. 가독성을 위해서라면 밑줄(_)을 쓸 수 있습니다.
  • 패키지 이름 또한 짧아야 하고, 전부 소문자 여야 합니다. 밑줄은 권장하지 않습니다

클래스 이름 :

  • 클래스 이름은 CapWords 형식(단어를 대문자로 시작)을 따릅니다

exception의 이름 :

  • exception은 클래스이므로, class와 동일하게 적용됩니다.
  • 다만, 맨 뒤는 "Error"로 끝나야 합니다.

전역변수의 이름 :

(전역 변수는 하나의 모듈 안에서만 쓰인다고 가정합니다)

  • 전역 변수의 이름을 짓는 것은 함수 이름을 짓는 것과 동일합니다.
  • from M import *과 같이 쓰일 모듈에서는 global이 export 될 것을 방지하기 위해 all`메커니즘이나 혹은 맨 앞을 밑줄로 시작해야 합니다.

함수의 이름 :

  • 함수의 이름은 원칙적으로 소문자여야 하고, 가독성을 위해서 밑줄(_)로 단어를 나눌 수 있습니다.
  • 간혹 threading.py같이 이미 대/소문자를 혼용하는 경우는 대/소문자를 같이 쓰는 경우도 있습니다.

함수와 메소드의 인자 :

  • 메소드 인스턴스에 쓰이는 첫 번째 인자는 무조건 self여야 합니다.
  • 클래스 메소드의 첫 번째 인자는 무조건 cls여야 합니다
  • 예약된 키워드(in 등)와 함수의 인자가 겹치는 경우, 변수 이름 맨 뒤에 밑줄 하나를 붙이는 것으로 대체합니다.(ex, class_)

메소드 이름과 인스턴스의 이름 :

  • 함수 이름과 동일합니다.
  • public이 아닌 메소드나 인스턴스의 이름은 밑줄로 시작합니다

상수의 이름 :

  • 상수 이름은 전부 대문자와 밑줄로 쓰는 것을 원칙으로 합니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close