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 "..."
- 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
2.5, pengekodan
- Fail menggunakan pengekodan UTF-8
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
penyataan import hendaklah disusun mengikut tertib, dengan baris kosong yang memisahkan setiap kumpulan
import os import sys import msgpack import zmq import foo
from myclass import MyClassa
import bar import foo.bar bar.Bar() foo.bar.Bar()
- 4, ruang
# 正确的写法 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 = 3e
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"""