Rumah > Artikel > pembangunan bahagian belakang > Penyusunan titik pengetahuan piawaian pengekodan Python
Artikel ini membawakan anda pengetahuan yang berkaitan tentang Python, yang terutamanya mengatur isu yang berkaitan dengan standard pengekodan Jika anda ingin menulis kod python dengan baik, anda mesti memahami piawaian pengekodan yang berkaitan dengan ular sawa daripada , kod yang ditulis bukan sahaja dapat merealisasikan fungsi yang sepadan, tetapi juga mudah dan mudah dibaca, dengan logik yang jelas Mari kita lihat bersama-sama.
[Cadangan berkaitan: Tutorial video Python3]
Jika anda ingin menulis kod python dengan baik, anda mesti memahami pengekodan berkaitan python standard, terdapat Dengan berkat ini, kod yang ditulis bukan sahaja boleh mencapai fungsi yang sepadan, tetapi juga mudah dan mudah dibaca, dengan logik yang jelas. Bahagian pokok kemahiran ini terutamanya berkongsi spesifikasi pengekodan ular sawa yang sepadan Rakan-rakan yang sedang belajar ular sawa, sila baca dengan teliti Ia pasti akan meningkatkan penulisan kod ular sawa anda. ! !
# -- coding: utf-8 --
import sys reload(sys) sys.setdefaultencoding('utf-8')
Jangan tambahkan koma bertitik di hujung baris, atau Gunakan koma bertitik untuk meletakkan dua arahan pada baris yang sama.
Tidak lebih daripada 80 aksara setiap baris
Kecuali yang berikut:
Jangan gunakan garis miring ke belakang untuk menyambungkan talian.
Python secara tersirat akan bergabung dengan garisan yang disertakan dalam kurungan, kurungan segi empat sama dan kurungan kerinting.
Ungkapan dalam kurungan, kurungan segi empat sama atau kurungan kerinting dibenarkan untuk dipecahkan kepada berbilang garis fizikal tanpa menggunakan garis miring ke belakang. Contohnya:
month_names = ['Januari', 'Februari', 'Maart', # These are the 'April', 'Mei', 'Juni', # Dutch names 'Juli', 'Augustus', 'September', # for the months 'Oktober', 'November', 'December'] # of the year
Penyambungan baris tersirat boleh diulas keluar. Lekukan baris berikutnya tidak menjejaskan struktur program. Baris berikutnya juga dibenarkan menjadi baris kosong.
Jika perlu, anda boleh menambah sepasang kurungan tambahan di sekeliling ungkapan.
Jika rentetan teks tidak muat pada satu baris, anda boleh menggunakan kurungan untuk melaksanakan penggabungan baris tersirat
x = ('这是一个非常长非常长非常长非常长 ' '非常长非常长非常长非常长非常长非常长的字符串')
Adalah disyorkan untuk menggunakan nilai lalai mod Python Emacs: 4 ruang setiap tahap lekukan. Jangan gunakan tab dan jangan campurkan tab dan ruang
Kod contoh yang betul:
if a==0: print("正确") # 缩进4个空白占位 else: # 与if对齐 print("错误") # 缩进4个空白占位 或者 # 4 个空格缩进,第一行不需要 foo = long_function_name( var_one, var_two, var_three, var_four)
Kod contoh ralat:
if a==0: print("正确") else: print("错误") print("end") # 错误的是这行代码前面加了一个空格 或者 # 2 个空格是禁止的 foo = long_function_name( var_one, var_two, var_three, var_four)
Terdapat tiga bentuk ulasan dalam Python: komen baris, ulasan sekat, ulasan dokumen
Komen baris : Komen harus menerangkan perkara yang mereka lakukan, bukan kod itu sendiri
n = input() m = input() t = n / 2 # t是n的一半 # 循环,条件为t*m/n 小于n while (t * m / (n + 1) < n): t = 0.5 * m + n / 2 # 重新计算t值 print(t)
块注释:
def FuncName(parameter1,parameter2): """ 描述函数要做的事情 :param parameter1: 参数一描述(类型、用途等) :param parameter2: 参数二描述 :return: 返回值描述 """
# 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 if i is a power of 2
文档注释:
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."""
class Class01: pass class Class02: def function_01(self): pass def function_02(self): pass
使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。
空格使用规则:
正确示例代码:
spam(ham[1], {eggs: 2}, []) if x == 4: print x, y x, y = y, x dict['key'] = list[index] def complex(real, imag=0.0): return magic(r=real, i=imag)
错误示例代码:
spam( ham[ 1 ] , { eggs: 2 } , [ ] ) if x == 4 : print x , y x , y = y , x dict ['key'] = list [index] def complex(real, imag = 0.0): return magic(r = real, i = imag)
模块名命名
# 正确 import decoder import html_parser # 不推荐 import Decoder
变量命名
count = 0 this_is_var = 0
常量或者全局变量命名
MAX_CLIENT = 100
函数命名
def run(): pass def run_with_env(): pass class Person(): def _private_func(): pass
类命名
class Farm(): pass class AnimalFarm(Farm): pass class _PrivateFarm(Farm): pass
类里面函数和方法参数
特别注意:
- 不要中英文混编
- 不要有a、b、c这种没有意义的命名
- 不要怕名字长就随便缩写,比如person_info 缩写成pi
- 不要用大小写区分变量类型,比如a是int类型,A是String类型
- 不要使用容易引起混淆的变量名
- bool变量⼀般加上前缀 is_ 如:is_success
- 变量名不要用系统关键字,如 dir type str等等
以下用下画线作前导或结尾的特殊形式是被公认的:
- _single_leading_underscore(以一个下画线作前导):例如,“from M import *”不会导入以下画线开头的对象。
- single_trailing_underscore_(以一个下画线结尾):用于避免与 Python 关键词的冲突,例如“Tkinter.Toplevel(master, class_='ClassName')”。
- __double_leading_underscore (双下画线):从 Python 1.4 起为类私有名。
- __double_leading_and_trailing_underscore__:特殊的(magic) 对象或属性,存在于
用户控制的(user-controlled)名字空间,例如:__init__、__import__ 或 __file__。
字符串引号规则:
正确使用示例:
Tim('Why are you hiding your eyes?') Bob("I'm scared of lint errors.") Juy('"Good!" thought a happy Python reviewer.')
正确使用例子:
import os import numpy import sys from types import StringType, ListType
错误使用例子:
import os, numpy, sys
from MyClass import MyClass from foo.bar.YourClass import YourClass
模块导入建议
示例 | 评价 |
from modu import * | 差, 不清楚具体从模块中导入了哪些内容 |
from modu import sqrt | 稍好 |
import modu import modu.sqrt |
最佳 , 调用的时候直接使用modu.sqrt能比较清楚的知道当前方法属于哪个模块 |
import os import sys |
推荐 |
import os, sys |
不推荐 |
from subprocess import Popen, PIPE | 推荐 |
主功能应该放在一个main()函数中。
在Python中,pydoc以及单元测试要求模块必须是可导入的。代码应该在执行主程序前总是检查 if __name__ == '__main__'
, 这样当模块被导入时主程序就不会被执行。
def main(): ... if __name__ == '__main__': main()
如果要将 RCS 或 CVS 的杂项包含在你的源文件中,按如下格式操作:
__version__ = "$Revision: 1.4 $" # $Source: E:/cvsroot/python_doc/pep8.txt,v $
对于 CVS 的服务器工作标记更应该在代码段中明确出它的使用说明,如在文档最开始的版权声明后应加入如下版本标记:
# 文件:$id$ # 版本:$Revision$
这样的标记在提交给配置管理服务器后,会自动适配成为相应的字符串,如:
# 文件:$Id: ussp.py,v 1.22 2004/07/21 04:47:41 hd Exp $ # 版本:$Revision: 1.4 $
这些应该包含在模块的文档字符串之后,所有代码之前,上下用一个空行分割。
【相关推荐:Python3视频教程 】
Atas ialah kandungan terperinci Penyusunan titik pengetahuan piawaian pengekodan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!