日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

如何避免把 Python 代码写得跟屎一样?

發(fā)布時(shí)間:2024/9/15 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何避免把 Python 代码写得跟屎一样? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

同樣的功能,你可以使用不同的代碼方式來實(shí)現(xiàn),它們,都可以跑的起來,而在背后的那些「跳動」著的代碼,有的美如詩,有的丑如屎...如果說,代碼是有生命的,那么你希望它是溫柔的天仙,還是摳腳的大漢?

你在 Python 環(huán)境中, import 一下 this,浮現(xiàn)出來的是一首詩,前部分是:

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

你看這 Python 的思想,要的就是簡潔,漂亮,可讀性好...

為了讓你團(tuán)隊(duì)之間合作得愉快,為了讓你我心情好一點(diǎn),為了你的幸福,我想還是有必要跟你說說:

如何避免把 Python 代碼寫得跟屎一樣。。。

那么接下來就是

學(xué)習(xí) Python 的正確姿勢

關(guān)于名稱

在寫代碼的時(shí)候,我們有很多地方需要定義名稱,比如常用到就有變量的名稱,類的名稱,方法的名稱,參數(shù)的名稱等等...如何才能寫好它們呢?

類名

有一種命名法叫「大駝峰式命名法」:

每一個(gè)單字的首字母都采用大寫字母,例如:FirstName、LastName、CamelCase,也被稱為Pascal命名法(英語:Pascal Case)。

在 Python 中起類名最好就是使用這種方式,比如:MyClass,FxxkPython。

還有一點(diǎn)要注意的是,有些單詞本身就是縮寫的,比如:

HTML = HyperText Markup Language

HTTP = HyperText Transfer Protocol

那么在寫含有這些單詞的類名時(shí),也是需要大寫的:

HTTPServerError

而不是:

HttpServerError

方法名和變量名

方法名和變量名盡量全使用小寫字母,如果名稱中的單詞多,可以使用「_」來分割,比如:

firstname,lastname,extract_data,file,age,name....

模塊名稱

模塊名稱也是全使用小寫字母,使用「_」來分割,比如:

fxxk.py,fxxk_python.py

包名

包名使用小寫字母,但不建議使用「_」來分割,比如:

package,mypackage

常量

常量名稱使用全大寫字母,使用「_」來分割,比如:

MAXNUM,MYCONSTANT,CONSTANT

關(guān)于注釋

在 Python 代碼中寫注釋有幾種,比如在代碼塊注釋,在行內(nèi)注釋,寫文檔的注釋。

幾個(gè)寫注釋的好習(xí)慣:

代碼注釋使用 # 開頭,并在后面空一格才開始寫

每一行不要超過 72 個(gè)字符,適當(dāng)使用 # 分行

注釋要和代碼對齊

每一段應(yīng)該空一行出來

行內(nèi)注釋

注意空格:

代碼塊多行注釋

注意對齊:

注意換行:

文檔字符串

除了解釋代碼的行為,我們有時(shí)候還需要寫代碼的「功能使用文檔」,有了文檔別人才能更好的使用你寫的功能,通常我們會在代碼里面寫 DocStrings。

寫 DocStrings 的習(xí)慣方式是這樣的:

  • Docstrings 應(yīng)該是在「類」或「函數(shù)定義下」的第一行開始聲明

  • Docstrings 應(yīng)該是用 """ 開頭, """ 結(jié)尾

  • Docstrings 第一行的描述盡量簡短并且能讓人一下子就知道說的是什么

  • 第二行起需要空格

  • 每一段描述之間需要有空格

  • ? 和代碼對齊

  • ? 每一行不要超過 72 個(gè)字符

像這樣:

當(dāng)然,DocStrings 還有別的風(fēng)格,比如常見的還有 Google 和 Numpy 的風(fēng)格。

你可以在這里找到它們的例子:

https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html#example-numpy

關(guān)于代碼

其實(shí)寫代碼和寫文章有點(diǎn)相似,文章要讓人看得下去,起碼要有點(diǎn)排版,什么地方應(yīng)該加空格,什么地方應(yīng)該換行,字與字之間的間距多少才好?行與行之間的間距多少才好?什么地方留白?(你看我公眾號的排版,是不是用心了?)

代碼也是一樣的,不要什么都特么堆在一起。

類與類之間要空兩行

類與頂層方法之間也要空兩行

類中的方法之間要空一行

不同的邏輯代碼之間空一行

比如 for,if 這些具有邏輯性的語句之間,可以空一行,這樣可以讓邏輯看起來更加清晰:

代碼的縮近

關(guān)于代碼的縮進(jìn)可能大部分 b 友喜歡用 Tab 鍵,不過更好的縮進(jìn)方式是「連續(xù) 4 個(gè)空格」。

在使用 Python2 那會你還可以 Tab 和空格混合使用,不過在 Python3 之后不可以這樣,縮進(jìn)的方式要保持一致,最好都是「連續(xù) 4 個(gè)空格」。

如果你已經(jīng)習(xí)慣了 Tab 來縮進(jìn),也沒關(guān)系,大部分編輯器都可以自定義按 Tab 的時(shí)候,給你轉(zhuǎn)換成「連續(xù) 4 個(gè)空格」。

代碼的換行

在寫代碼的時(shí)候,要記得換行,每行代碼最好不要超過 79 個(gè)字符。

對于一些字典,列表,元組,函數(shù)等這些含有 () [] {},可以直接回車換行,并垂直對齊:

有時(shí)候?yàn)榱嗣烙^大方,你可以把括號的結(jié)尾另起一行:?

如果含有運(yùn)算符,建議換行的時(shí)候把符號放在前面:

其它的你可以使用反斜杠換行:

代碼的空格

在以下這些運(yùn)算操作符的兩邊,需要加個(gè)空格。

運(yùn)算:

+?_?*?=?+=?-=?等

比較

==,?<,?>,?!=,?<>,?<=,?>=,?in,?not in,?is,?is not

布爾:?

and,?or,?not

不過,如果代碼中含有多個(gè)運(yùn)算,那么可以直接在最低優(yōu)先級的地方添加空格:

對于函數(shù)的參數(shù)默認(rèn)賦值,也不需要添加空格:

在冒號,分號,逗號后面加空格,前面不要加空格(切片中的冒號除外):

緊靠 ()、[]、{} 不要加空格 :

在函數(shù)調(diào)用和索引使用時(shí)不要加空格:

關(guān)于 import

在文件的頂部,我們寫 import 的語句,具有如下順序:

從標(biāo)準(zhǔn)內(nèi)置庫開始導(dǎo)入,接著是第三方庫,最后導(dǎo)入的是自己本地寫的庫,并且分好組,之間空一行。

import 語句要換行,不要寫在一行上:

但是從一個(gè)庫中導(dǎo)入具體的類,就可以在寫在一行上:

OK,以上就是小帥b今天給你帶來的分享,我想這些都是你會經(jīng)常操作到的東西,如果你想要了解更多如何把 Python 寫的優(yōu)雅,可以看看官網(wǎng)的 PEP8 介紹。

當(dāng)然,也有一些插件可以使用,它們可以格式化你的代碼,比如 vim-autopep8,或者一些庫也可以檢查你的代碼是否符合規(guī)范,比如 pylint,pycodestyle 等,不過小帥b還是建議你自己在寫代碼的時(shí)候多養(yǎng)成以上這些好習(xí)慣,而不是靠插件來幫你格式化那些 shit。

也許有些人并不在意這些,覺得可讀性沒什么,那就讓他們隨意就好。不過你都看到這里了,說明你還是對某方面有細(xì)節(jié)上的追求,那么咱們就一點(diǎn)一點(diǎn)改進(jìn)唄,對你總會有好處的。

之前在某個(gè)群上,有位不認(rèn)識的朋友看到了我的代碼,他夸我的那句話我到現(xiàn)在還記得:「你的代碼看起來好舒服啊」,這「舒服」兩個(gè)字就像你給我點(diǎn)贊分享那樣開心。。。我之所以開心且記得,是因?yàn)樗吹搅宋易⒅氐募?xì)節(jié)。

說不定哪天,因?yàn)槟硞€(gè)細(xì)節(jié),你就脫「引」而出,那可真是帥啊!

推薦閱讀

Pandas處理數(shù)據(jù)太慢,來試試Polars吧!

懶人必備!只需一行代碼,就能導(dǎo)入所有的Python庫

絕!關(guān)于pip的15個(gè)使用小技巧

介紹10個(gè)常用的Python內(nèi)置函數(shù),99.99%的人都在用!

可能是全網(wǎng)最完整的 Python 操作 Excel庫總結(jié)!

總結(jié)

以上是生活随笔為你收集整理的如何避免把 Python 代码写得跟屎一样?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。