gambaran ringkas

Gambaran Keseluruhan Ringkas

1. Pengekodan

  • Jika tiada keadaan istimewa, semua fail akan menggunakan pengekodan UTF-8

  • -sekiranya ada keadaan istimewa mesti ditambahkan pada pengepala fail: UTF-8-*-Idential

2, format kod

2.1, mengecut

  • Seragam penggunaan 4 lekukan
  • grid kosong

2.2, lebar

setiap setiap Baris kod hendaklah cuba untuk tidak melebihi 80 aksara (ia boleh melebihi sedikit 80 dalam kes khas, tetapi panjang maksimum tidak boleh melebihi 120)

Sebab:

  • Ini berguna apabila melihat sisi- perbezaan sisi

  • Senang melihat kod di bawah konsol

  • Mungkin kecacatan reka bentuk jika terlalu panjang

2.3, tanda petikan

semula jadi menggunakan tanda petikan berganda, dan penandaan mesin menggunakan tanda petikan tunggal, jadi dalam kod Kebanyakan harus menggunakan petikan tunggal

  • Bahasa semula jadi menggunakan petikan berganda "..."

;Sebagai contoh, mesej ralat dalam banyak kes ia masih unicode, gunakan u"Hello World"
  • Gunakan petikan tunggal untuk pengenalan mesin '...' Contohnya, kunci dalam dict
  • ungkapan biasa menggunakan petikan berganda asli r".. ."
  • Rentetan dokumen (docstring) menggunakan tiga petikan berganda """.... .."""

2.4. Garis kosong

  • Dua baris kosong dan antara fungsi peringkat modul definisi kelas;
  • Satu baris kosong antara fungsi ahli kelas;
    class A:
        def __init__(self):
            pass
        def hello(self):
            pass
    def main():
        pass
  • Berbilang baris kosong boleh digunakan untuk memisahkan berbilang kumpulan fungsi yang berkaitan
  • Anda boleh menggunakan baris kod kosong yang berasingan fungsi

2.5, pengekodan

  • Fail menggunakan pengekodan UTF-8
  • Tambahkan logo #-*-conding:utf-8-*- pada pengepala fail

3. Pernyataan import

Pernyataan import hendaklah ditulis dalam baris yang berasingan
    # 正确的写法
    import os
    import sys
    # 不推荐的写法
    import sys,os
    # 正确的写法
    from subprocess import Popen, PIPE
    import语句应该使用 absolute import
    # 正确的写法
    from foo.bar import Bar
    # 不推荐的写法
    from ..bar import Bar
  • Pernyataan import hendaklah diletakkan di kepala fail Selepas penerangan modul dan docstring, sebelum pembolehubah global

  • penyataan import hendaklah disusun mengikut tertib, dengan baris kosong yang memisahkan setiap kumpulan

    import os
    import sys
    import msgpack
    import zmq
    import foo
  • Boleh digunakan semasa mengimport definisi kelas modul lain Import relatif
    from myclass import MyClass
    a
  • Jika anda menamakan konflik
boleh menggunakan ruang nama

import bar
import foo.bar
bar.Bar()
foo.bar.Bar()

    4, ruang
Satu ruang pada setiap sisi pengendali binari [=,-+= ,==,>,dalam,bukan, dan]:
  • # 正确的写法
    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)

    🎜🎜Dalam senarai parameter fungsi, mesti ada ruang selepas 🎜
# 正确的写法
def complex(real, imag):
    pass
# 不推荐的写法
def complex(real,imag):
    pass
  • Dalam senarai parameter fungsi, jangan tambah ruang pada kedua-dua belah tanda sama nilai lalai

# 正确的写法
def complex(real, imag=0.0):
    pass
# 不推荐的写法
def complex(real, imag = 0.0):
    pass
  • Selepas kurungan kiri, jangan tambah ruang tambahan sebelum kurungan kanan

  • # 正确的写法
    spam(ham[1], {eggs: 2})
    # 不推荐的写法
    spam( ham[1], { eggs : 2 } )
  • Bahagian kiri objek kamus tidak ada ruang tambahan sebelum braket

  • # 正确的写法
    dict['key'] = list[index]
    # 不推荐的写法
    dict ['key'] = list [index]
    e
  • no ruang tambahan yang digunakan untuk menyelaraskan penyata tugasan

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

5. dalam kurungan. Terdapat dua keadaan pada masa ini. 1. Baris kedua diindenkan pada permulaan kurungan

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

2. Baris kedua diindenkan dengan 4 ruang, yang sesuai untuk situasi di mana kurungan permulaan ialah baris baharu

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

Gunakan garisan garisan belakang untuk baris baharu, operasi binari Simbol + ., dsb. hendaklah muncul di hujung baris; rentetan panjang juga boleh dibalut baris menggunakan kaedah ini

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

Pernyataan kompaun adalah dilarang, iaitu, berbilang pernyataan disertakan dalam satu baris:

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

jika/untuk/sementara mesti dibalut baris:

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

6 , docstring

Dua perkara paling asas dalam spesifikasi docstring ialah: 1 Semua modul, fungsi, kelas dan kaedah awam hendaklah ditulis docstring. Kaedah persendirian tidak semestinya diperlukan, tetapi harus disediakan dengan komen blok selepas def.

2. Hujung """ docstring harus menduduki barisnya sendiri, melainkan docstring ini hanya mempunyai satu baris.

"""Return a foobar
Optional plotz says to frobnicate the bizbaz first.
"""
"""Oneline docstring"""
Meneruskan pembelajaran
  • Cadangan kursus
  • Muat turun perisian kursus