파이썬 코딩 표준이 중요한 이유는 한 문장으로 요약할 수 있습니다. 균일한 코딩 표준은 개발 효율성을 향상시킬 수 있습니다.
ps.python의 코드 작성은 기본적으로 PEP8 스타일을 따라야 합니다
줄 끝에 세미콜론을 추가하지 말고, 같은 줄에 두 개의 명령을 넣을 때 세미콜론을 사용하지 마세요.
module_name, package_name, ClassName, method_name
피해야 할 이름
카운터 및 반복자를 제외한 단일 문자 이름.
패키지/모듈 이름에 하이픈(-)
이중 밑줄로 시작하고 끝나는 이름(__init__과 같은 Python 예약)
명명 규칙
소위 "내부"는 모듈 내에서만 사용할 수 있음을 의미합니다.
단일 밑줄(_)로 시작하면 모듈 변수 또는 함수가 보호됨을 나타냅니다(import * from을 사용할 때는 포함되지 않음).
두 개의 밑줄로 시작하는 인스턴스 변수( __) 또는 메소드는 클래스 내에서 비공개를 나타냅니다.
관련 클래스와 최상위 함수를 동일한 모듈에 넣습니다. Java와 달리 하나의 클래스를 하나의 모듈로 제한할 필요가 없습니다. 클래스 이름은 대문자(예: CapWords, 즉 파스칼 스타일)이지만 모듈 이름은 소문자로 밑줄을 그어야 합니다(예: lower_with_under.py). CapWords.py와 유사한 이름을 사용하는 기존 모듈이 많이 있지만 이는 다음과 같습니다. 모듈 이름이 클래스 이름과 동일하면 혼란스럽기 때문입니다.
3. 줄 길이
foo_bar(self, width, height, color='black', design=None, x='foo', emphasis=None, highlight=0) if (width == 0 and height == 0 and color == 'red' and emphasis == 'strong'):
x = ('这是一个非常长非常长非常长非常长 ' '非常长非常长非常长非常长非常长非常长的字符串')
# 与起始变量对齐 foo = long_function_name(var_one, var_two, var_three, var_four) # 字典中与起始值对齐 foo = { long_dictionary_key: value1 + value2, ... }
正确示范: spam(ham[1], {eggs: 2}, [])
错误示范: spam( ham[ 1 ], { eggs: 2 }, [ ] )
7. 정의 문자열 아래에 클래스를 설명하는 문서가 있어야 합니다. 클래스에 공개 속성(속성)이 있는 경우 문서에 속성(속성) 섹션이 있어야 하며 함수 매개변수와 동일한 형식을 따라야 합니다.
class SampleClass(object): """Summary of class here. Longer class information.... Longer class information.... Attributes: likes_spam: A boolean indicating if we like SPAM or not. eggs: An integer count of the eggs we have laid. """ def __init__(self, likes_spam=False): """Inits SampleClass with blah.""" self.likes_spam = likes_spam self.eggs = 0 def public_method(self): """Performs operation blah."""
# We use a weighted dictionary search to find out where i is in # the array. We extrapolate position based on the largest num # in the array and the array size and then do binary search to # get the exact number. if i & (i-1) == 0: # true iff i is a power of 2
반면에, 코드를 읽는다고 가정하지 마세요. 사람들은 당신보다 Python을 더 잘 알지만, 당신의 코드가 무엇을 하는지는 모릅니다.
# BAD COMMENT: Now go through the b array and make sure whenever i occurs # the next element is i+1
正确示范: x = a + b x = '%s, %s!' % (imperative, expletive) x = '{}, {}!'.format(imperative, expletive) x = 'name: %s; score: %d' % (name, n) x = 'name: {}; score: {}'.format(name, n)
错误示范: x = '%s%s' % (a, b) # use + in this case x = '{}{}'.format(a, b) # use + in this case x = imperative + ', ' + expletive + '!' x = 'name: ' + name + '; score: ' + str(n)
각각. 가져오기는 자체 줄에 있어야 합니다
正确示范: import os import sys
错误示范: import os, sys
가져오기는 항상 파일 상단, 모듈 주석 및 독스트링 뒤, 모듈 전역 변수 및 상수 앞에 배치되어야 합니다. 가져오기는 가장 일반적인 것부터 가장 덜 일반적인 것 순서로 그룹화되어야 합니다.
표준 라이브러리 가져오기 타사 라이브러리 가져오기 애플리케이션별 가져오기1. 이름 지정
함수, 변수 및 속성은 소문자로 표기해야 하며 _로만 연결해야 합니다. 카멜 케이스 명명 방법을 따르세요함수를 함수형 프로그래밍으로 사용할 때는 함수 사이에 빈 줄이 두 개 있어야 합니다.
클래스에 있는 함수의 경우 함수 사이에 빈 줄이 하나 있어야 합니다.
함수와 클래스가 동일한 경우 줄 사이에 두 개의 빈 줄이 있어야 합니다
한 줄에 지정된 문자 수를 초과하는 긴 표현의 경우 Enter 키를 눌러 들여쓰기해야 합니다. 일반적으로 첫 번째 줄을 제외하고 다른 모든 줄은 들여쓰기해야 합니다.
변수가 None, False, True인지 판단할 때 ==를 사용하지 마세요. 예를 들어 a가 None이면 is를 사용하세요
import 문은 문장 시작 부분에 배치하고, 최대한 import하도록 노력하세요. 상대 import 대신 절대 import를 사용하고, import 시 해당 모듈의 특정 기능을 지정하는 것이 가장 좋습니다. from datetime import datetime
모듈을 가져올 때 표준 라이브러리 모듈, 타사 모듈, 자체 사용 모듈에 따라 분류해야 합니다.
컨테이너가 비어 있지 않은 것을 감지하면 if를 사용해야 합니다. 컨테이너 이름, 예를 들어 목록 = [] if 목록
인라인 형식에서 부정어를 사용하고 전체 표현식 앞에 부정어를 넣지 마십시오. 예를 들어 if a가 if 대신 None이 아닌 경우이어야 합니다. not a is None
은 특정 중요한 코드 블록의 기능을 설명하는 데 사용해야 합니다.
전체 모듈의 기능을 설명하는 데는 한 줄 주석을 사용해야 합니다. 줄 주석을 사용해야 합니다
함수 및 클래스나 함수의 사용법에 대한 자세한 설명은 문서 문자열을 사용해야 합니다
파이썬 주석은 최대한 영어로 작성해야 합니다
위 내용은 Python의 코딩 표준은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!