簡體   English   中英

提高Python的可讀性?

[英]Improving Python readability?

我最近一直很喜歡Python編程。 我來自對C語言編碼的強烈熱愛的背景,其中一切都可能比它應該更復雜(但至少把頭發放在胸前)。 因此,從C轉換到Python以獲得不需要大量速度的更復雜的事情,這對於編寫項目來說更是一種福音。

然而,就肉眼可以看到的來自括號和圓括號和結構的土地,我遇到了一個小問題:我發現Python難以閱讀。

例如,除非我盯着它(我不喜歡這樣做),否則下面的文本塊很難解讀:

if foo:
   bar = baz
   while bar not biz:
      bar = i_am_going_to_find_you_biz_i_swear_on_my_life()

did_i_not_warn_you_biz()
my_father_is_avenged()

問題發生在那個if塊:所有的標簽然后突然回到一個震動的塊感覺幾乎令人不安。 作為一個解決方案,我開始編寫我的Python代碼:

if foo:
   bar = baz
   while bar not biz:
      bar = i_am_going_to_find_you_biz_i_swear_on_my_life()
   #-- while --
#-- if --

did_i_not_warn_you_biz()
my_father_is_avenged()

而且,由於一些奇怪的原因,這讓我更能夠閱讀自己的代碼。 但我很好奇:還有其他人遇到我的奇怪問題,找到了更簡單的方法來使他們的標簽代碼更具可讀性嗎? 在我成為一個巨大的習慣之前,我很想知道是否有更好的方法可以做到這一點。

學習新編程語言的一部分是學習用該語言閱讀代碼。 像這樣的拐杖可以讓你更容易閱讀自己的代碼,但它會妨礙學習如何閱讀其他人的Python代碼的過程。 我真的認為你最好擺脫塊注釋的結束並習慣普通的Python。

我喜歡在塊周圍放置空白線以使控制流更明顯。 例如:

if foo:
   bar = baz

   while bar not biz:
      bar = i_am_going_to_find_you_biz_i_swear_on_my_life()

did_i_not_warn_you_biz()
my_father_is_avenged()

您可以嘗試增加縮進大小,但總的來說,我只想說,放松,它會隨着時間而來。 我不認為嘗試使Python看起來像C是一個非常好的主意。

您應該專注於制作更多邏輯結構,而不是專注於使現有結構更具可讀性。 制作較小的塊,盡量不要過度嵌套塊,制作更小的函數,並嘗試更多地考慮代碼流。

如果您無法快速確定代碼的結構,則應考慮重構並添加一些注釋。 代碼流應始終是顯而易見的 - 您需要考慮的越多,代碼的可維護性就越低。

也許最好的辦法就是在編輯器中打開“顯示空白”。 然后你會有一個視覺指示,顯示每行中有多遠(通常是一堆點),當變化時會更明顯。

from __future__ import braces

需要我多說? :)

說真的, PEP 8 ,'空行',§4是正式的方法。

我將介紹了解有關Python語法的更多細節。 通常,如果一段代碼看起來很奇怪,通常會有更好的方法來編寫代碼。 例如,在上面的例子中:

bar = foo if baz else None
while bar not biz:
    bar = i_am_going_to_find_you_biz_i_swear_on_my_life()

did_i_not_warn_you_biz()
my_father_is_avenged()

雖然這是一個很小的變化,但它可能有助於提高可讀性。 另外,老實說,我從來沒有使用過while循環,所以有一個很好的改變,你最終會得到一個簡潔的列表理解或循環。 ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM