Apakah piawaian pengekodan dalam Python?

WBOY
Lepaskan: 2023-05-09 15:22:07
ke hadapan
1585 orang telah melayarinya

Piawaian pengekodan

Sebab piawaian pengekodan Python penting boleh dirumuskan dalam satu ayat: Piawaian pengekodan seragam boleh meningkatkan kecekapan pembangunan.

Penulisan kod ps.python pada asasnya mesti mengikut gaya PEP8

1. ia Titik koma meletakkan dua arahan pada baris yang sama.

2. Penamaan

nama_modul, nama_pakej, Nama_kelas, nama_kaedah

Nama yang harus dielakkan

    Nama aksara tunggal, kecuali pembilang dan iterator
  1. Sempang (-) dalam nama pakej/modul
  2. bermula dan berakhir dengan garis bawah berganda. nama (Python dikhaskan, seperti __init__)
Konvensyen Penamaan

    Yang dipanggil "Dalaman" bermaksud Hanya tersedia dalam modul, atau, dilindungi atau peribadi dalam kelas
  1. Bermula dengan garis bawah tunggal (_) menunjukkan bahawa pembolehubah atau fungsi modul dilindungi (tidak digunakan apabila menggunakan import * daripada. Akan mengandungi)
  2. Pembolehubah contoh atau kaedah yang bermula dengan garis bawah berganda (__) menunjukkan peribadi dalam kelas itu Fungsi peringkat atas diletakkan dalam modul yang sama Tidak seperti Java, tidak perlu mengehadkan satu kelas kepada satu modul
  3. Gunakan perkataan yang bermula dengan huruf besar (seperti CapWords, Pascal. style) untuk nama kelas, Tetapi nama modul hendaklah dalam huruf kecil dan bergaris bawah (seperti lower_with_under.py Walaupun terdapat banyak modul sedia ada yang menggunakan nama yang serupa dengan CapWords.py, ini tidak lagi digalakkan kerana jika nama modul itu berlaku). sama dengan nama kelas Konsisten, ini akan menyebabkan masalah.
  4. 3 Panjang baris
  5. Tidak lebih daripada 80 aksara setiap baris

  6. Kecuali untuk. situasi berikut:

URL dalam ulasan penyata modul import panjang

    Jangan gunakan garis miring ke belakang untuk menyambungkan talian.
  1. Python akan menyambung secara tersirat garisan yang disertakan dalam kurungan, kurungan segi empat sama dan kurungan kerinting Anda boleh memanfaatkan ciri ini, jika perlu, anda boleh menambah sepasang di sekeliling ungkapan Kurungan tambahan.
  2. Disyorkan:

    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'):
    Salin selepas log masuk
  3. Jika rentetan teks tidak muat pada satu baris, anda boleh menggunakan kurungan untuk melaksanakan penggabungan baris tersirat:
x = ('这是一个非常长非常长非常长非常长 '
     '非常长非常长非常长非常长非常长非常长的字符串')
Salin selepas log masuk

4 🎜>Gunakan 4 ruang untuk mengesot kod

Jangan sekali-kali menggunakan tab atau campurkan tab dan ruang Dalam kes penyambungan baris, anda harus sama ada menjajarkan elemen yang dibalut secara menegak (lihat :ref:`panjang garis`. contoh), atau gunakan inden gantung 4 ruang (sepatutnya tiada parameter pada baris pertama):

       # 与起始变量对齐
       foo = long_function_name(var_one, var_two,
                                var_three, var_four)
 
       # 字典中与起始值对齐
       foo = {
           long_dictionary_key: value1 +
                                value2,
           ...
       }
Salin selepas log masuk

5, baris kosong

paras atas Dua baris kosong antara takrifan, satu kosong baris antara takrifan kaedah

Dua baris kosong antara takrifan peringkat atas, seperti takrifan fungsi atau kelas hendaklah ada satu baris kosong antara takrifan kaedah, takrifan kelas dan kaedah pertama, jika anda fikir ia sesuai, tinggalkan baris kosong di beberapa tempat

6. Ruang

Gunakan ruang pada kedua-dua belah tanda baca

mengikut piawaian pemformatan standard hendaklah tiada ruang dalam kurungan

Gunakan ruang pada kedua-dua belah tanda baca mengikut konvensyen pemformatan standard

正确示范: spam(ham[1], {eggs: 2}, [])
Salin selepas log masuk
rrree

7 harus ditakrifkan dalam Terdapat docstring yang menerangkan kelas di bawah Jika kelas anda mempunyai atribut awam (Atribut), maka dokumentasi harus mempunyai bahagian atribut (Atribut) Dan ia harus mengikut format yang sama dengan parameter fungsi.

错误示范: spam( ham[ 1 ], { eggs: 2 }, [ ] )
Salin selepas log masuk

8 Sekat ulasan dan komen baris

Perkara yang paling penting untuk menulis komen ialah bahagian teknikal kod tersebut. maka anda Ia harus diulas sekarang Untuk operasi yang kompleks, beberapa baris ulasan hendaklah ditulis sebelum operasi bermula. Untuk kod yang tidak jelas, komen hendaklah ditambahkan pada penghujung baris. >Untuk meningkatkan kebolehbacaan Secara umumnya, komen hendaklah meninggalkan sekurang-kurangnya 2 ruang daripada kod.

Sebaliknya, jangan sekali-kali menghuraikan kod tersebut dengan anggapan bahawa orang yang membaca kod itu lebih mengenali Python daripada anda tidak tahu apa yang dilakukan oleh kod anda.
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."""
Salin selepas log masuk

9 Rentetan

# 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
Salin selepas log masuk
# BAD COMMENT: Now go through the b array and make sure whenever i occurs
# the next element is i+1
Salin selepas log masuk

10 Pakej import

Setiap import harus berada pada taliannya sendiri
正确示范: 
     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)
Salin selepas log masuk
错误示范: 
    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)
Salin selepas log masuk
<.>Import hendaklah sentiasa diletakkan di bahagian atas fail, dalam ulasan modul dan docstrings, sebelum pembolehubah global dan pemalar modul hendaklah dikumpulkan mengikut tertib daripada yang paling biasa kepada yang paling kurang biasa:

Import perpustakaan standard. Import perpustakaan pihak ketiga Import khusus aplikasi

【Ringkasan】

1 >Fungsi, pembolehubah dan sifat hendaklah dieja dalam perkataan huruf kecil Gunakan _ untuk menyambung, jangan ikut konvensyen penamaan huruf unta

Kelas dan pengecualian hendaklah menggunakan huruf besar, jangan gunakan _ untuk menyambung.

Atribut contoh yang dilindungi , hendaklah bermula dengan garis bawah tunggal

Sifat peribadi contoh hendaklah bermula dengan garis bawah berganda

2. Kosong

  1. Setiap tahap lekukan yang berkaitan dengan sintaks diwakili oleh 4 ruang

  2. Apabila menetapkan, mesti ada ruang pada kedua-dua belah tanda sama

  3. Setiap Bilangan aksara yang diduduki oleh satu baris tidak boleh melebihi 79. Dalam operasi sebenar, cuba jangan biarkan bar skrol baris kod editor dipaparkan

  4. Apabila menggunakan fungsi untuk pengaturcaraan berfungsi, harus ada dua baris kosong antara fungsi

  5. Untuk fungsi dalam kelas, harus ada satu baris kosong antara fungsi

  6. Jika fungsi dan kelas berada pada tahap yang sama, hendaklah terdapat dua baris kosong di antaranya

  7. Untuk ungkapan panjang yang melebihi nombor yang ditentukan daripada formula aksara setiap baris, anda harus menekan Enter untuk mengesot Biasanya, kecuali untuk baris pertama, semua baris lain mesti diinden sebanyak 4 ruang sekali lagi

3. Pernyataan

  1. Apabila menilai sama ada pembolehubah adalah Tiada, Salah atau Benar, jangan gunakan ==, tetapi gunakan adalah Contohnya, jika a adalah Tiada

  2. The. penyata import hendaklah diletakkan pada permulaan ayat, Apabila mengimport, cuba gunakan import mutlak dan bukannya import relatif, dan yang terbaik adalah untuk menentukan fungsi khusus modul yang sepadan sebagai contoh, dari datetime import datetime

  3. Modul hendaklah diimport mengikut Klasifikasi modul perpustakaan standard, modul pihak ketiga dan modul yang digunakan sendiri

  4. Apabila mengesan bahawa bekas itu tidak kosong, nama bekas if harus digunakan, contohnya, lists = [] if lists

  5. Gunakan bentuk sebaris perkataan negatif, jangan letak perkataan negatif di hadapan keseluruhan ungkapan, sebagai contoh, ia sepatutnya jika a bukan Tiada dan bukannya jika bukan a adalah Tiada

4 daripada blok kod penting tertentu, ulasan satu baris

  1. hendaklah digunakan untuk keseluruhan fungsi modul Penerangan harus menggunakan ulasan berbilang baris

  2. Penerangan terperinci tentang fungsi dan penggunaan kelas atau fungsi hendaklah menggunakan docstring

  3. python Comments hendaklah dalam bahasa Inggeris sebanyak mungkin

Atas ialah kandungan terperinci Apakah piawaian pengekodan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!