간결한 개요LOGIN

간결한 개요

간결한 개요

1. 인코딩

  • 파일은 모두 UTF-8 인코딩을 사용합니다.

  • 특별한 사정이 없으면 #-*-코딩 파일 헤더에 추가해야 합니다: UTF-8-*-Idential

2, 코드 형식

2.1, 축소

  • 들여쓰기에 4개의 빈 그리드를 균일하게 사용

2.2 , width

코드 줄은 80자를 넘지 않도록 노력해야 합니다(특수한 경우 80자를 약간 넘을 수 있지만 최대 길이는 120을 넘지 않아야 합니다)

이유:

  • 옆에서 볼 때 도움이 됩니다- by-side diffs

  • 콘솔 아래에서 코드를 보는 것이 편리합니다

  • 너무 길면 디자인 하자일 수 있습니다

2.3, 인용 부호

간단히 말하면 자연어 큰따옴표를 사용하고 기계 표시는 작은따옴표를 사용하므로 코드에서 대부분은 작은따옴표

  • 를 사용해야 합니다. 자연어는 큰따옴표 "..."

예를 들어, 오류 메시지; 대부분의 경우 여전히 유니코드입니다. u"Hello World"

  • 기계 식별 '...'에 작은따옴표를 사용하세요. 예를 들어 dict

  • 정규식의 키는 기본 큰따옴표 r"..을 사용합니다. ."

  • 문서 문자열(docstring)은 큰따옴표 세 개를 사용합니다. """.... .."""

2.4. 빈 줄

  • 모듈 수준 함수와 사이에 두 개의 빈 줄

  • 클래스 멤버 함수 사이에 하나의 빈 줄이 있습니다.

class A:
    def __init__(self):
        pass
    def hello(self):
        pass
def main():
    pass
  • 여러 개의 빈 줄을 사용하여 관련 함수의 여러 그룹을 구분할 수 있습니다.

  • 빈 줄을 사용하여 논리적으로 관련된 코드를 구분할 수 있습니다. 함수

2.5, 인코딩

  • 파일이 UTF-8 인코딩을 사용합니다

  • 파일 헤더에 #-*-conding:utf-8-*-로고를 추가하세요

3. import 문

import 문은 별도의 줄에 작성해야 합니다

# 正确的写法
import os
import sys
# 不推荐的写法
import sys,os
# 正确的写法
from subprocess import Popen, PIPE
import语句应该使用 absolute import
# 正确的写法
from foo.bar import Bar
# 不推荐的写法
from ..bar import Bar
  • import 문은 모듈 설명 및 문서 문자열 뒤, 전역 변수 앞에 배치되어야 합니다.

    import 문은 각 그룹을 구분하는 빈 줄을 사용하여 순서대로 정렬되어야 합니다.

  • import os
    import sys
    import msgpack
    import zmq
    import foo

다른 모듈의 클래스 정의를 가져올 때 사용할 수 있습니다. 상대 가져오기
  • from myclass import MyClass

이름 충돌이 발생하면
  • import bar
    import foo.bar
    bar.Bar()
    foo.bar.Bar()

  • 4, 공백

네임스페이스를 사용할 수 있습니다. 이항 연산자 [=,-,+= ,==,>,in,is not, and]:
    의 양쪽에 공백 하나씩
  • # 正确的写法
    i = i + 1
    submitted += 1
    x = x * 2 - 1
    hypot2 = x * x + y * y
    c = (a + b) * (a - b)
    # 不推荐的写法
    i=i+1
    submitted +=1
    x = x*2 - 1
    hypot2 = x*x + y*y
    c = (a+b) * (a-b)

함수 매개변수 목록에서
    뒤에 공백이 있어야 합니다.
# 正确的写法
def complex(real, imag):
    pass
# 不推荐的写法
def complex(real,imag):
    pass
  • 함수 매개변수 목록에서 기본값인 등호 양쪽에 공백을 추가하지 마세요

# 正确的写法
def complex(real, imag=0.0):
    pass
# 不推荐的写法
def complex(real, imag = 0.0):
    pass
  • 왼쪽 괄호 뒤, 오른쪽 괄호 앞에 공백을 추가하지 마세요

# 正确的写法
spam(ham[1], {eggs: 2})
# 不推荐的写法
spam( ham[1], { eggs : 2 } )
  • 사전 개체의 왼쪽 괄호 앞에 추가 공백이 없습니다

# 正确的写法
dict['key'] = list[index]
# 不推荐的写法
dict ['key'] = list [index]
  • 할당문을 정렬하는 데 추가 공백이 사용되지 않습니다

# 正确的写法
x = 1
y = 2
long_variable = 3
# 不推荐的写法
x             = 1
y             = 2
long_variable = 3

5 줄 바꿈

Python은 줄 바꿈을 지원합니다. 괄호 안에. 이때 상황은 두 가지입니다.

1. 두 번째 줄은 괄호 시작 부분까지 들여쓰기됩니다.

foo = long_function_name(var_one, var_two,
                         var_three, var_four)

2. 두 번째 줄은 공백 4개로 들여쓰기됩니다. 이는 시작 괄호가 개행인 상황에 적합합니다.

def long_function_name(
        var_one, var_two, var_three,
        var_four):
    print(var_one)

개행에는 백슬래시를 사용하세요. 이진 연산 기호 + . 등은 줄 끝에 나타나야 합니다. 긴 문자열은 이 방법을 사용하여 줄 바꿈할 수도 있습니다.

session.query(MyTable).\
        filter_by(id=1).\
        one()
print 'Hello, '\
      '%s %s!' %\
      ('Harry', 'Potter')

복합 문은 금지됩니다. 즉, 여러 문이 한 줄에 포함됩니다.

# 正确的写法
do_first()
do_second()
do_third()
# 不推荐的写法
do_first();do_second();do_third();

if/for/while은 줄바꿈되어야 합니다:

# 正确的写法
if foo == 'blah':
    do_blah_thing()
# 不推荐的写法
if foo == 'blah': do_blash_thing()

6 , docstring

docstring 사양의 가장 기본적인 두 가지 사항:

1 모든 공개 모듈, 함수, 클래스 및 메서드는 docstring으로 작성되어야 합니다. . Private 메소드가 반드시 필요한 것은 아니지만 def 뒤에 블록 주석을 제공해야 합니다.

2. 이 독스트링에 한 줄만 있는 경우를 제외하고 독스트링의 끝 """은 자체 라인을 차지해야 합니다.다음 섹션

코스웨어