2013-01-18 2 views
2

파이썬 코드를보다 읽기 쉽게 표시하려고합니다. 나는 style guide를 읽을 수 있지만 내가 어떻게 주석 포장이처럼 정렬 할이파이썬 코드에서 주석을 줄 바꿈하는 방법

x = foo(x); # compute the value of the next prime number 
      # that is larger than x (foo is a really bad 
      # choice for this function's name) 

또는이

x = x + 1     # Compensate for border 
some other code   # some other comment 

같은 것을 얻는 방법을 몰라? 그냥 space을 입력하지 마십시오. 그렇습니까? 코드를 편집하면 수동으로 주석을 다시 정렬해야합니까?

저는 편집기로 emacs를 사용하고 있습니다.

+0

이 작업을 수행하려는 경우 (의심 스럽습니다) 파일의 공백을 확실히 공백으로 두십시오. emacs를 프로그래밍하는 방법을 묻는다면 수동으로 모든 공백을 입력 할 필요가 없습니다 ... 모든 키 입력을 모든 함수에 바인드 할 수는 있지만, 그 함수가 수행해야 할 작업을 정확하게 정의해야합니다 누군가 그것을 쓰는 법을 말할 수 있습니다 ... – abarnert

답변

8

나는 전혀이 원하는 생각하지 않습니다. Lattyware 이미 두 번째 경우를 설명하지만,의 첫 살펴 보자 :이 같은 코드 위의 블록 주석으로 설정할 수 있습니다 - 라인에 맞게 너무 긴

x = foo(x); # compute the value of the next prime number 
      # that is larger than x (foo is a really bad 
      # choice for this function's name) 

댓글 :

# compute the value of the next prime number that is larger than 
# x (foo is a really bad choice for this function's name) 
x = foo(x); 

오른쪽 정렬 된 주석보다 읽기 쉽습니다. 그것은 또한 당신에게 더 많은 공간을 제공합니다. 그리고 분명히 이맥스 (모든 것을 입력하고 meta-Q를 입력하는 것)가 더 쉽습니다. PEP 8의 Inline Comments을 인용하면 다음과 같습니다 :

인라인 코멘트는 절대로 사용하지 마십시오.

인라인 메모는 명령문과 같은 줄에있는 메모입니다.

이것은 인라인 코멘트의 스타일 가이드의 시작 부분이며, 같은 줄에 들어갈 수있는 것보다 더 많은 것을 쓰고 싶다면 대신 블록 주석을 사용해야합니다. . 또한

, 우리는 PEP 8에 대해 이야기하는 동안 ". 댓글 완전한 문장이어야한다"

  • 가 첫 번째 의견에는 마침표가 필요합니다. (그렇습니다. "주석이 짧으면 끝에있는 기간을 생략 할 수 있지만 3 행 2 문장 주석이 있으므로 여기서는 적용되지 않습니다.)
  • " 코멘트는 문장이나 문장입니다. 첫 번째 단어는 대문자이어야합니다. " 그래서 "Compute"를 대문자로 만드십시오 ("식별자"이기 때문에 "foo"가 아닙니다).
  • 함수의 이름이 잘못되었다는 설명을 추가하지 말고 함수의 이름을 바꿉니다.
  • 세미콜론을 제거하십시오.

그래서 :

# Compute the value of the next prime number that is larger than x. 
x = next_larger_prime(x) 

그러나 당신은 당신이조차 필요 코멘트를 할 것을 수행하고 나면.

그리고 사실 꽤 일반적입니다. 주석 달기에 대한 스타일 지침을 어기는 방법에 대해 궁금해 할 때, 코드를 재구성하여 모든 주석이 필요하지 않도록하는 방법을 묻는 것이 좋습니다. 항상 가능한 것은 아니지만 적어도 노력하는 것이 좋습니다.

+0

+1, 많은 좋은 점. –

+0

감사합니다. 좋은 제안입니다. 이 첫 번째 코드는 온라인에서 찾은 한 가지 예이며 잘 보였다고 생각했습니다. 아니야. 나는 그 가이드를 고수해야한다. – LWZ

+1

@LWZ : 라인 엔딩에서 세미콜론을 사용하는 온라인에서 찾은 모든 예제는 아마도 파이썬을 잘 모르는 사람이 작성한 것이므로 모델로 사용하지 않을 것입니다 ... – abarnert

3

나는 두 경우가 크게 다르다고 주장한다. 첫 번째 경우 사용자의 편집기에서 탭 너비 설정에 관계없이 주석을 정렬하려면 탭 위에 공백을 사용합니다. 분명히 코드의 들여 쓰기에 탭을 사용한다면 코드의 레벨에 도달 할 때까지 탭을 사용하고 그 다음에는 공백을 사용하십시오.

사용하여 상상 탭 :

x = foo(x) # compute the value of the next prime number 
⟶⟶⟶⟶ # that is larger than x (foo is a really bad 
⟶⟶⟶⟶ # choice for this function's name) 

지금 누군가가 탭 길이 짧은 설정을 사용 상상 :

x = foo(x) # compute the value of the next prime number 
→→→→ # that is larger than x (foo is a really bad 
→→→→ # choice for this function's name) 

내가 주장하지만, 당신은 트리플 인용 문자열이 대체 할 수 있습니다 것 대신 :

"""Compute the value of the next prime number 
that is larger than x (foo is a really bad 
choice for this function's name).""" 
x = foo(x) 

두 번째 경우에는 주석을 정렬하는 것이 가독성, 나는 그것들을 줄의 끝에 넣을 것이다. PEP-8은 할당, dict 리터럴 등을 정렬하는 것을 권장합니다.

x = x + 1 # Compensate for border 
some other code # some other comment 
+0

고맙습니다. 트리플 쿼터가 훨씬 낫다고 생각합니다. – LWZ

2

이렇게해서는 안됩니다. 첫 번째는이 같은 형식이어야합니다 :

# Compute the value of the next prime number that is larger than x 
# (foo is a really bad choice for this function's name). 
x = foo(x) 

둘째 :

x = x + 1 # Compensate for border 
some other code # some other comment 
+0

감사합니다. 이 간결한 대답은 그 자체로 "멋지게보고 읽을 수있는"것입니다. – LWZ

관련 문제