什么是 Python? Python 之父 Guido van Rossum 說:Python是一種高級程序語言,其核心設(shè)計哲學(xué)是代碼可讀性和語法,能夠讓程序員用很少的代碼來表達(dá)自己的想法。
對于我來說,學(xué)習(xí) Python 的首要原因是,Python 是一種可以優(yōu)雅編程的語言。它能夠簡單自然地寫出代碼和實現(xiàn)我的想法。
另一個原因是我們可以將 Python 用在很多地方:人工智能、數(shù)據(jù)科學(xué)、Web 開發(fā)和機器學(xué)習(xí)等都可以使用 Python 來開發(fā)。
國慶期間后臺有小伙伴留言問我:“Python變量和方法名稱中單下劃線和雙下劃線的含義是什么?”我想一些初學(xué)者或者經(jīng)驗尚淺的朋友一定也會有這個疑問,所以今天我就來跟大家聊聊Python中這個很重要的“下劃線”!
單下劃線和雙下劃線在Python變量和方法名稱中都各有其含義。有一些含義僅僅是依照約定,被視作是對程序員的提示 - 而有一些含義是由Python解釋器嚴(yán)格執(zhí)行的。
那么,下面就為大家介紹一下Python中單下劃線和雙下劃線("dunder")的各種含義和命名約定,名稱修飾(name mangling)的工作原理,以及它如何影響你自己的Python類。
下面將討論以下五種下劃線模式和命名約定,以及它們?nèi)绾斡绊慞ython程序的行為:
單前導(dǎo)下劃線:_var
單末尾下劃線:var_
雙前導(dǎo)下劃線:__var
雙前導(dǎo)和末尾下劃線:__var__
單下劃線:_
1、單前導(dǎo)下劃線 _var
程序員使用名稱前的單下劃線,用于指定該名稱屬性為“私有”。這有點類似于慣例,為了使其他人(或你自己)使用這些代碼時將會知道以“_”開頭的名稱只供內(nèi)部使用。正如Python文檔中所述:
以下劃線“_”為前綴的名稱(如_spam)應(yīng)該被視為API中非公開的部分(不管是函數(shù)、方法還是數(shù)據(jù)成員)。此時,應(yīng)該將它們看作是一種實現(xiàn)細(xì)節(jié),在修改它們時無需對外部通知。
正如上面所說,這確實類似一種慣例,因為它對解釋器來說確實有一定的意義,如果你寫了代碼“from <模塊/包名> import *”,那么以“_”開頭的名稱都不會被導(dǎo)入,除非模塊或包中的“__all__”列表顯式地包含了它們。
新聞熱點
疑難解答