精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python 面試時千萬別這樣命名函數,因為這個被淘汰可太不值了

開發 前端
如果還沒有,建議大家親自安裝試一試,找到最適合自己的 Python 虛擬環境管理器。本篇文章我想給大家講講 Python 標識符命名的規范。

在《11款常用的Python虛擬環境管理器》這篇文章中,我介紹了 Python 的虛擬環境,不知道大家有沒有自己動手嘗試一下。

如果還沒有,建議大家親自安裝試一試,找到最適合自己的 Python 虛擬環境管理器。

本篇文章我想給大家講講 Python 標識符命名的規范。

為什么要講標識符命名呢?我講一個朋友的經歷,大家就知道了。

我有位朋友,咱們就叫他小白哥吧。

小白哥剛大學畢業那會兒,想轉行做 Python 數據分析,自學了一段時間,就去面試了。

只不過,在頭一次面試中他很快就被淘汰了。

為什么呢?請大家看下他寫的代碼。

1import pandas as pd
 2
 3# 讀取 Excel 文件中的數據
 4wenjian = 'shuju.xlsx'
 5shuju = pd.read_excel(wenjian, sheet_name='Sheet1')
 6
 7# 顯示前五行數據
 8print(shuju.head())
 9
10# 處理缺失值
11quchuqueshizhi = shuju.dropna()
12
13# 顯示處理后的數據
14print(quchuqueshizhi.head())

咱也不多寫了,就說面試官一看他那代碼,把他給 pass 了。

小白哥還追著問面試官問為啥啊,我這 Pandas 用得挺好的呀,數據都出來了,也統計對了。

面試官笑了一下,告訴他,就沖你這命名方式,我就能看出你的進步空間還很大,繼續努力吧,我看好你。

要知道,專業且規范的標識命名能體現出一位開發者的基本素養,也是一個開發團隊協作的重要基礎。

如果連命名規范都做不好,在面試時可就會貽笑大方啦。

廢話不多說,我盡量以最簡潔清晰的方式,以給函數命名為例,給大家介紹一下 Python 中給標識符命名的路數應該是怎樣的。

注:Python 代碼風格指南(https://peps.python.org/pep-0008/),即 PEP 8,包含更多命名規范相關內容,有興趣的朋友可以去看一下。

標識符命名的一些基本規則

Python 的標識符包括變量、常量、函數、類、類的方法、類的屬性等。標識符的命名規則主要有以下幾點。

  • 要遵循 Python 命名慣例 ~ PEP8。
  • 標識符的名稱可以使用大小寫英文字母、0~9、下劃線等字符。
  • 標識符的名稱不能以數字開頭。
  • 標識符的名稱支持使用中文、日文等 Unicode 字符,但為了代碼易讀、易懂,不推薦使用。
  • 標識符的名稱最好只使用 ASCII 中的字符,讓代碼更好讀。
  • 標識符的名稱要清晰易懂,容易理解才能易于維護。
  • 除非團隊約定或行內約定俗成,不要使用單個字母或英文單詞簡寫命名。
  • 不要使用拼音命名。

函數命名的一些基本規則

  • 函數名應清晰、簡潔地說明函數要執行的操作。如,read()。
  • 函數名應使用英文的動詞或以動詞開頭的多個單詞。如,read_excel()。
  • 函數名要使用小寫字母,如 find()。
  • 函數命名要遵循蛇形命名法。即,如果在函數名中包含多個單詞,則要使用下劃線分隔單詞。如,read_data_for_groupby()。
  • 蛇形命名法是 PEP 8 中函數命名的首選方法。

有效的函數名

  • find(),有效。
  • user_name(),有效,但不推薦,因為沒有表現出函數要執行的動作。
  • get_99_user_name(),有效。
  • _get_users(),可以以下劃線為開頭。
  • 獲取用戶名(),Unicode 中的字符是有效的,但不推薦使用。
  • hello?world(),? 作為 Unicode 中的標點符號是有效的,但不推薦使用。

無效命名

  • 10_users(),不能以數字開頭。
  • save_success!(),除了下劃線,不允許使用嘆號、問號等其他 ASCII 標點符號。

包含下劃線的命名法

  • 當函數名以單下劃線開頭時,如 _get_users(),表示這個函數是內部的,不能在模塊外部使用。
  • 當函數名以單下劃線結尾時,可以避免你的函數名與 Python 內置函數名或關鍵字發生沖突。如 import_(),可以避免與關鍵字 import 沖突, max_() 可以避免與內置函數 max() 沖突。
  • 當函數名以雙下劃線開頭時,主要用于類中的方法或屬性,也被稱為名稱修飾。Python 解釋器會修改使用這種命名方式定義類的屬性或方法的名稱,不能在類之外,甚至在子類中訪問該命名法定義的方法或屬性。這個知識點屬于類的內容,不在此贅述。
  • 以雙下劃線開頭和結尾的命名法被稱為 dunder 命名法,dunder 是 double underscore 的簡寫。在 Python 中這種方式也叫魔術方法,這種命名法主要用于定義類的方法和變量,示例如下。
1class UserInfo:
2    def __init__(self, id_number, username):
3        self.id_number = id_number
4        self.username = username
5
6    def __repr__(self):
7        return (
8          f"{type(self).__name__}({self.id_number}, {self.username})"
9        )

在 UserInfo 類中就包含了兩個魔術方法。

  • .__init__() 在創建類的實例時被調用,用于初始化對象。
  • .__repr__() 定義對象的字符串表示,包括類名及其參數的信息。

Python 內置的魔術方法很多,以后會有專門的文章介紹。

現在你只需要記住 dunder 命名法主要是用于 Python 內置的方法,自定義方法時應避免這種命名方式。

函數名要清晰易懂

代碼清晰、易懂是成熟開發者的重要標志。那么,如何才能起一個可讀性強的函數名呢?

例如,要編寫獲取單詞首字母的函數。

如果函數名如下所示,則既難理解該函數的目的,也容易引起混淆。

1def init(n):
2    return " ".join(f"{i[0]}." for i in n.split())

init 是 initial 的簡寫形式, 即首字母的意思,但它也有初始化的意思。

如果使用簡寫形式,既容易與 __init__() 混淆,還可能會被誤解為初始化。

因此,在起函數名時,盡量不要使用英文簡寫。

當然,更不要使用漢語拼音和單個字母。

那這個名字應該怎么起好呢?我們可以根據函數的功能 ~ “獲取首字母”,起一個直觀的名字。如 get_initials(),這個名字就清晰了。

當然也可以加入參數名和介詞,如 get_initials_from(fullname),這樣是不是就更直觀了?

大家不要害怕函數名太長會增加輸入的負擔,現代 IDE 都支持代碼自動補全,可以幫你快速輸入較長的名稱。

但也不要矯枉過正,還是要避免給函數起過長的名字。這就需要你折中取舍了,不過不用擔心,只要遵循本文的原則,你很快就會熟練起來的。

方法的命名慣例

方法(method)是什么?越是簡單的名詞越難以理解,我之前就搞不明白方法與函數的區別。

其實,方法和函數沒有什么本質上的區別,它只是在類中定義的函數,約定俗成地把它叫作“方法”罷了。

因此,在命名方法時也要遵循函數的命名慣例,使用蛇形命名法,并應以動詞或動詞開頭的多個單詞命名。如 check_user_age() 或 show_use_info()。

如果要在類定義某個方法,但又不想將其作為類的接口,并且不需要調用類中的這個方法時,則可以在方法名稱前添加單個下劃線,如 _check_user_age()。

這種方式不能阻止直接調用該方法,示例如下。

1class UserInfo:
2    def _check_user_age(self, age):
3        return self.age >= age

在 REPL 中輸入如下代碼,可以看到返回的內容。

1>>> from user_info import UserInfo
2>>> user = UserInfo("Johnson", 50)
3>>> user._check_user_age(25)
4False

以下劃線開頭的 _check_user_age() 方法不會在 VSCode 等 IDE 的代碼自動補全提示中顯示。但像在 REPL 中一樣,我們仍可以輸入并調用該方法。

到這里基本上就講完了函數名/方法名的命名規則了。下面再簡單介紹一下命名函數與命名其他標識符的異同之處。

函數與其他標識符命名規則的相同點

  • 都不能以數字開頭。
  • 都不能有除下劃線以外的 ASCII 標點符號。
  • 都應盡量避免使用單個字母或英文簡寫命名,除非是大家約定俗成的簡寫方式。
  • 變量也要使用小寫字母命名。
  • 變量也要使用蛇形命名法。

函數與其他標識符命名規則的不同點

  • 類使用首字母大寫的方式命名。
  • 類不使用蛇形命名法,而是使用大駝峰命名法,即所有首字母都大寫,如,UserInfor。
  • 還有一個是常量,常量也使用大寫字母命名,但使用下劃線分割多個單詞。如,TIME_LIMIT。

結語

本文主要介紹了以下知識點。

  • Python 的代碼風格指南(PEP8)是 Python 好好學習的參考手冊,這里介紹一個支持庫,叫 autopep8,大家可以安裝使用。
  • Python 標識符的命名基本規則。
  • Python 函數/方法命名的基本規則與示例。
  • 下劃線在標識符命名中的特殊作用。
  • 函數與其他標識符的命名的異同。

總之,Python 標識符的命名很重要,既涉及代碼可讀性,也涉及開發團隊的協作,大家一定要規范命名。

責任編輯:武曉燕 來源: Python學研大本營
相關推薦

2024-11-07 10:04:48

2018-03-27 10:15:58

微信紅包個人信息

2010-08-09 16:30:53

面試

2020-12-18 15:08:17

微信詐騙移動應用

2012-02-21 09:22:45

2019-06-26 08:30:32

計算機互聯網iOS

2011-02-22 09:24:30

諾基亞微軟

2009-07-03 16:21:58

IT系統數據中心運維管理

2021-08-06 09:20:41

IT管理IT領導者CIO

2022-03-08 09:00:00

Kubernetes容器技術

2011-07-08 13:34:16

2018-10-11 09:00:00

軟件開發代碼用戶

2014-09-10 10:14:14

2021-01-30 11:09:05

技術Java面試

2022-04-21 10:28:49

支付寶賬號

2012-08-20 14:09:29

面試

2017-12-25 08:55:45

網站虛擬主機

2017-04-21 13:50:37

硬盤磁盤

2020-12-07 07:48:35

K8sDockerKubernetes

2020-06-11 16:15:25

Java線程池代碼
點贊
收藏

51CTO技術棧公眾號

色婷婷综合久色| 最新中文字幕在线观看视频| 免费观看黄色一级视频| 成人无号精品一区二区三区| av一区二区三区在线| 正在播放亚洲1区| 成人中文字幕在线播放| 精品人妻无码一区二区| 少妇一区二区视频| 五月激情综合网| 国产一区白浆| 国产sm精品调教视频网站| 欧美videofree性高清杂交| 日本在线观看一区二区| 日本网站免费观看| 免费欧美网站| 自拍视频在线观看一区二区| 成人疯狂猛交xxx| 99在线视频免费| 日本片在线看| 久久久久电影| 欧美精品乱码久久久久久| 欧洲亚洲一区二区| 久久久久久久亚洲| 精品久久久久久久久久久下田| 日韩欧美亚洲综合| 欧美日韩精品一区| 日韩综合在线观看| 第九色区aⅴ天堂久久香| 日韩免费电影一区| 欧美在线一区视频| 亚洲欧美色视频| 老妇喷水一区二区三区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲综合网站| 一二三区精品福利视频| 97影院在线午夜| 国产无遮挡免费视频| 林ゆな中文字幕一区二区| 亚洲国产aⅴ成人精品无吗| 国产亚洲欧美一区二区| 在线视频一区二区三区四区| 成人羞羞视频播放网站| 日韩国产精品一区| 亚洲精品高清无码视频| 国产福利在线| 久久精品理论片| 欧美精品在线观看91| 欧美丰满熟妇bbb久久久| 中文字幕人成乱码在线观看| 国产精品色噜噜| 亚洲最大成人在线| 久草国产精品视频| 日韩在线观看| 欧美xxxxx牲另类人与| 久久精品国产99久久99久久久| 日本天码aⅴ片在线电影网站| 亚洲精品视频在线观看免费| 精品视频一区二区| 中文字幕人妻一区二区三区视频| 无需播放器亚洲| 亚洲精品成人久久久| 超碰在线97免费| 在线观看的网站你懂的| 26uuu国产一区二区三区| 国产综合久久久久| 国产 日韩 欧美 在线| 99视频精品全国免费| 日韩在线视频线视频免费网站| 男生和女生一起差差差视频| 不卡av影片| 亚洲免费在线播放| 男人草女人视频| 国产免费av在线| 国产精品沙发午睡系列990531| 亚洲欧美日产图| 无套内谢的新婚少妇国语播放| 99这里只有久久精品视频| 久久综合给合久久狠狠色| 国产特级aaaaaa大片| 日韩av一区二区三区| 久久久综合免费视频| 欧美一级特黄高清视频| 欧美女王vk| 日韩一区二区久久久| 国产在线精品成人一区二区三区| 国产精品一区二区av白丝下载| 国产亚洲午夜| 国产精品自拍偷拍视频| av片免费观看| 久久精品国产色蜜蜜麻豆| 国产日韩中文字幕| 全国男人的天堂网| 久久久国产精品麻豆| 99精品国产一区二区| 中文字幕日本视频| 国产一区二区成人久久免费影院 | 欧美黑人巨大xxxxx| 亚洲综合图片区| 国产成人黄色片| 51av在线| 亚洲综合网站在线观看| 亚洲精品中文字幕无码蜜桃| 人成在线免费网站| 亚洲高清视频中文字幕| 日日摸天天爽天天爽视频| 精品国产三区在线| 亚洲美女性生活视频| av漫画在线观看| 欧美综合一区| 午夜精品久久久久久久久久久久久 | 国产福利一区视频| 国产精品久久久久久久久久辛辛| 色一区在线观看| 亚洲男人天堂2021| 久久最新网址| 国内伊人久久久久久网站视频| 在线免费观看视频网站| 水蜜桃久久夜色精品一区的特点 | 久久久久女教师免费一区| 手机在线免费看毛片| 97色伦图片97综合影院| 久久精品小视频| 538任你躁在线精品视频网站| 亚洲女同另类| 久久久久久亚洲精品中文字幕| 中文字幕二区三区| www国产成人免费观看视频 深夜成人网| 国产欧美自拍视频| 色帝国亚洲欧美在线| 欧美影院一区二区三区| 日韩成人精品视频在线观看| 欧美视频精品全部免费观看| 中文字幕亚洲综合久久筱田步美| 欧美特黄aaaaaa| 久久久久网站| 成人免费午夜电影| av大片在线观看| 亚洲精品视频在线| 国产精品探花在线播放| 午夜影院欧美| 91在线观看免费网站| 国产成人无码www免费视频播放| 成年人网站91| 亚洲不卡中文字幕| 日本暖暖在线视频| 亚洲高清视频在线| 日韩少妇一区二区| 精品欧美久久| 国产精品99导航| 国产片在线播放| 亚洲精品中文字幕乱码三区| 三级av免费看| 国内精品美女在线观看| 国产精品久久久久aaaa九色| 亚洲AV无码精品国产| 国产亚洲人成网站| 久久久天堂国产精品| 亚洲承认视频| 这里只有精品久久| 在线观看免费观看在线| 国产精品传媒视频| www.com毛片| 亚洲国产欧美日韩在线观看第一区 | 国产精品久久二区| 欧美精品电影| 欧美日韩在线视频首页| 一级网站在线观看| 韩国欧美一区| 久久亚洲高清| 国产精品66| 日韩第一页在线| 波多野结衣视频观看| 国产精品成人在线观看| 中文字幕第三区| 超碰成人久久| 亚洲影院污污.| 538在线视频| 一本色道久久综合亚洲精品小说| 国产绿帽一区二区三区| 亚洲成av人片在www色猫咪| caoporm在线视频| 狠狠干成人综合网| 欧美一区二区在线视频观看| 日韩成人综合网| 一区二区三区黄色| 国产精品无码免费播放| 亚洲国产成人va在线观看天堂| 亚洲做受高潮无遮挡| 在线免费高清一区二区三区| 91久久精品美女高潮| 成年网站在线视频网站| 欧美一级视频精品观看| 成年人二级毛片| 麻豆成人91精品二区三区| 国内精品国产三级国产99| 亚欧洲精品视频在线观看| 91精品国产91久久| 欧美一区二区三区成人片在线| 色94色欧美sute亚洲线路一ni| 懂色av粉嫩av蜜乳av| 国语精品一区| 亚洲精品一区二区三| 视频免费一区二区| 欧美高清不卡在线| 丰满少妇高潮在线观看| 日韩欧美有码在线| 成人免费看片98| 成人福利视频网站| www午夜视频| 99久久视频| 美日韩精品免费| 亚洲一区二区三区四区电影| 国产精品入口日韩视频大尺度| 久草视频视频在线播放| 日本道色综合久久| 久久国产露脸精品国产| 成人性生交大合| 日韩精品―中文字幕| 99久久综合狠狠综合久久aⅴ| 麻豆久久久av免费| 激情小说亚洲图片| 51蜜桃传媒精品一区二区| 国产精品诱惑| 精品中文字幕在线观看| 成人毛片在线免费观看| 欧美久久一区二区| 中文区中文字幕免费看| 日韩欧美国产视频| 日韩欧美一级视频| 午夜欧美2019年伦理| 久久久久久天堂| 亚洲专区一二三| 青青草激情视频| 亚洲啪啪综合av一区二区三区| 美女流白浆视频| 国产不卡精品视男人的天堂| 中文字幕一区二区人妻| 色综合激情五月| 国产精品一区二区6| 亚洲国产一区二区三区青草影视| 午夜免费一级片| 日本不卡高清视频| 成人午夜激情av| 日韩成人精品在线| 综合久久国产| 久久影视三级福利片| 丁香五月网久久综合| 中文字幕这里只有精品| 欧美一级片免费在线| 91se在线| 丝袜亚洲另类欧美重口| 天天在线视频色| 久久精品亚洲热| av中文字幕在线播放| 精品爽片免费看久久| 亚洲视频久久久| 欧美性三三影院| 中文字幕人妻互换av久久| 欧美色爱综合网| 国产亚洲色婷婷久久99精品| 亚洲影视资源网| 国产特黄大片aaaa毛片| 欧美性高潮在线| 无码人妻精品一区二区蜜桃色欲| 欧美专区日韩专区| 国产精品白浆一区二小说| 亚洲不卡一区二区三区| 国产精品国产三级国产专区52| 欧美性色视频在线| 中文字幕欧美人妻精品一区蜜臀| 91精品国产综合久久精品| 亚洲国产精品一| 精品小视频在线| av福利在线播放| 欧美日韩成人在线播放| 涩涩av在线| 国产欧美一区二区三区四区| 2020最新国产精品| 欧美一区二区在线视频观看| 久久久久久久久久久久久久| 久操网在线观看| 日韩成人av影视| 国产精品91av| 久久综合999| 亚洲图片综合网| 国产老妇另类xxxxx| 亚洲一区日韩精品| 成人毛片视频在线观看| 日韩福利在线视频| 亚洲一区二区影院| 波多野结衣av无码| 欧美成人伊人久久综合网| 极品美乳网红视频免费在线观看| 欧美成aaa人片免费看| 成人教育av| 成人欧美一区二区三区在线观看| 美女毛片一区二区三区四区最新中文字幕亚洲 | 中文字幕亚洲欧美日韩在线不卡| 免费网站在线观看人| 久久亚洲精品网站| 蜜桃视频在线观看www社区| 午夜精品一区二区三区在线视频| 国产精品久久久久久久久久齐齐 | 欧洲永久精品大片ww免费漫画| 久草在线资源站资源站| 国产精品久久久久影院日本| 成人h动漫免费观看网站| 成人午夜电影在线播放| re久久精品视频| 日韩精品―中文字幕| 国产成人aaa| 成人一级黄色大片| 日本韩国欧美在线| 污视频软件在线观看| 欧美成人小视频| 精品国产黄a∨片高清在线| 久久天堂国产精品| 亚州国产精品| 免费的av在线| 精品中文字幕一区二区| 五月天国产视频| 欧美激情一二三区| 免费成人深夜蜜桃视频| 国产精品久久久久影院老司| 精品成人av一区二区在线播放| 日韩欧美国产一区在线观看| 快射av在线播放一区| 欧美裸身视频免费观看| 日韩国产大片| 视频在线观看成人| 视频一区二区三区入口| 国产亚洲无码精品| 精品日韩美女的视频高清| 欧美视频一二区| 色综合色综合久久综合频道88| 国产精品免费精品自在线观看| 亚洲永久一区二区三区在线| 一二三区不卡| 伊人成人222| av男人天堂一区| 精品少妇爆乳无码av无码专区| 欧美一卡二卡三卡| 99热国产在线| 99久久99| 日韩视频在线一区二区三区| 一区二区三区免费播放| 国产在线观看一区二区| 婷婷社区五月天| 91.com视频| 四虎影视2018在线播放alocalhost| 亚洲天堂日韩电影| 伊人电影在线观看| 亚洲一区二区三区视频播放| 女人色偷偷aa久久天堂| 国产成人av影视| 国产日韩视频一区二区三区| 看黄色一级大片| 日韩中文字幕视频在线观看| 亚洲黑人在线| 99在线观看视频免费| 蜜臀av一区二区在线观看 | 欧美一级片网址| 国产成人永久免费视频| 91丝袜国产在线播放| 国产99免费视频| 久久久成人av| 风间由美性色一区二区三区四区| 手机看片福利永久国产日韩| 蜜臀av性久久久久av蜜臀妖精 | 国产老头和老头xxxx×| 一区二区欧美国产| 日漫免费在线观看网站| 欧美精品在线网站| 国产精品国产| 久久国产乱子伦免费精品| 国产激情偷乱视频一区二区三区 | 综合精品久久久| 亚洲男女视频在线观看| 欧美在线视频免费播放| 99精品视频在线观看播放| 国产a级片视频| 在线观看视频一区二区欧美日韩| 成人在线影视| 久久久久成人精品免费播放动漫| 免费人成在线不卡| 精品少妇久久久| 色哟哟入口国产精品| 中文字幕亚洲在线观看| 欧美私人情侣网站| 亚洲老司机在线| 你懂的在线免费观看| 91福利视频在线观看| 久久精品国产亚洲夜色av网站| 极品白嫩的小少妇| 欧美日韩精品二区第二页| www亚洲人| 国产精品久久久久久久久久免费| 欧美二区不卡| 谁有免费的黄色网址|