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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

在Python中变量名这样写,就是给自己挖坑

發布時間:2025/3/20 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Python中变量名这样写,就是给自己挖坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python編程上的一些挖坑行為,你可能也犯了。

下面這樣的一串代碼相信很多人都寫過,但可能除了你自己沒有人看得懂:

for range in range(n):for j in range(m):for k in range(l):temp_value = X [i] [j] [k] * 12.5 new_array [i] [j] [k] = temp_value + 150

這并不是一段好的的代碼,為了圖省事,使用了簡單而無實際含義的變量及數值,看起來在任何程序中都可以用,對于看的人來說就是災難,因為要想半天或者查看上下文才知道你寫的變量是什么意思,給別人修改和調試帶來很大麻煩。

所以如果你的代碼不僅僅是給自己看的,就盡量不要再這么寫,多使用描述性變量名稱和命名常量編寫代碼,養成一個變量命名的好習慣。

來看看用標準變量怎么寫上面的代碼:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' PIXEL_NORMALIZATION_FACTOR = 12.5 PIXEL_OFFSET_FACTOR = 150for row_index in range(row_count):for column_index in range(column_count):for color_channel_index in range(color_channel_count):normalized_pixel_value = (original_pixel_array[row_index][column_index][color_channel_index]* PIXEL_NORMALIZATION_FACTOR)transformed_pixel_array[row_index][column_index][color_channel_index] = (normalized_pixel_value + PIXEL_OFFSET_FACTOR)

雖然代碼量增大了,但是別人一看就能看懂,不管隔多久再來看很快就能明白,而第一段代碼,過一陣再看你還能明白是干什么的么?

好的程序員都會遵守的代碼變量命名規則:

  • 變量名應該能夠描述變量表示的信息。

  • 優先考慮代碼的易懂性,而不是編寫代碼的速度。

  • 采用標準的命名約定,做出一個全局決策而不是多個本地決策。

所以命名不標準的原因主要有兩個:

  • 無益/混淆/模糊的變量名稱

  • 未命名的“魔法”常數

簡單來說,不要再像下面這樣命名變量:

X, y, xs, x1, x2, tp, tn, clf, reg, xi, yi

要糾正也很簡單,遵守下面三條簡單規則即可:

  • 變量/函數名稱:用小寫字母表示,中間用下劃線分割

  • 常量:用大寫字母

  • Class 類:首字母大寫,其余小寫

詳細來說有這么些注意事項:

  • X和y:

X 和 y 你可能已經看過幾百次,知道它們的功能,但對于閱讀代碼的其他開發人員來說,這可能并不明顯。所以,不妨使用描述這些變量是代表什么的名稱,例如:house_features 和 house_prices。

  • value:

value 值具體是什么呢?可能是一個velocity_mph,customers_served,efficiency,revenue_total。不同的 value 最后加一個詳細的前綴。

  • temp:

臨時變量雖然可以用 temp 表示,但最好還是給它一個有意義的名稱。比如是需要轉換單位的值,像下面這樣寫:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #不要這樣做 temp = get_house_price_in_usd(house_sqft,house_room_count) final_value = temp * usd_to_aud_conversion_rate #這樣做 house_price_in_usd = get_house_price_in_usd(house_sqft,house_room_count) house_price_in_aud = house_price_in_usd * usd_to_aud_conversion_rate
  • 縮寫:

如果使用縮寫變量,最好提前申明縮寫變量名的含義,比如usd, aud, mph, kwh, sqft這些。與普通縮寫的團隊其他成員達成一致并寫下來。然后,在代碼審查中,確保執行這些書面標準。

  • 避免機器學習特定的縮寫:

比如盡量不要用 tp, tn, fp, fn,這些縮寫變量,而是使用完整的變量代替:true_positives,true_negatives,false_positives,和false_negatives。

導致錯誤變量名直接原因?

下面這兩個原因是寫出錯誤變量名的重要原因:

  • 希望保持變量名稱簡短

  • 將公式直接轉換為代碼

    根據上面的公式,一般情況下很可能就直接寫成:

temp = m1 * x1 + m2 *(x2 ** 2) final = temp + b

這是看起來像是機器編寫的代碼,雖然計算機最終將運行它,但人看的次數更多,最好編寫適合人理解的代碼:

house_price = price_per_room * rooms + price_per_floor_squared *(floor** 2) house_price = house_price + expected_mean_house_price

不要使用魔法數字

魔法數字就是不是變量名的恒定值,通常用于單位轉換。但這樣的轉換代碼是錯誤的:

final_value = unreverted_value * 1.61 final_quantity = quantity / 60 value_with_offset = value + 150

沒人理解 1.61、60 表示什么單位,自然也就看不懂轉換后的變量含義,所以最好給這個轉換數值賦予變量名,比如:

USD_TO_AUD_CONVERSION_RATE = 1.61 price_in_aud = price_in_usd * USD_TO_AUD_CONVERSION_RATEREVOLUTIONS_PER_MINUTE = 60 revolution_count = minutes_elapsed * REVOLUTIONS_PER_MINUTE

以上就是在代碼變量命名過程中需要注意的一些細節。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的在Python中变量名这样写,就是给自己挖坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。