最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中下劃線的使用方法

 更新時間:2015年03月27日 15:41:48   作者:svbtle  
這篇文章主要介紹了Python中下劃線的使用方法,是為python編程學習中的基本知識,需要的朋友可以參考下

本文將討論Python中下劃線(_)字符的使用方法。我們將會看到,正如Python中的很多事情,下劃線的不同用法大多數(shù)(并非所有)只是常用慣例而已。


單下劃線(_)

通常情況下,會在以下3種場景中使用:

1、在解釋器中:在這種情況下,“_”代表交互式解釋器會話中上一條執(zhí)行的語句的結(jié)果。這種用法首先被標準CPython解釋器采用,然后其他類型的解釋器也先后采用。

>>> _ Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name '_' is not defined
>>> 42
>>> _
42
>>> 'alright!' if _ else ':('
'alright!'
>>> _
'alright!'

2、作為一個名稱:這與上面一點稍微有些聯(lián)系,此時“_”作為臨時性的名稱使用。這樣,當其他人閱讀你的代碼時將會知道,你分配了一個特定的名稱,但是并不會在后面再次用到該名稱。例如,下面的例子中,你可能對循環(huán)計數(shù)中的實際值并不感興趣,此時就可以使用“_”。

n = 42
for _ in range(n):
 do_something()

3、國際化:也許你也曾看到”_“會被作為一個函數(shù)來使用。這種情況下,它通常用于實現(xiàn)國際化和本地化字符串之間翻譯查找的函數(shù)名稱,這似乎源自并遵循相應的C約定。例如,在Django文檔“轉(zhuǎn)換”章節(jié)中,你將能看到如下代碼:

from django.utils.translation import ugettext as _
from django.http import HttpResponse
def my_view(request):
 output = _("Welcome to my site.")
 return HttpResponse(output)

可以發(fā)現(xiàn),場景二和場景三中的使用方法可能會相互沖突,所以我們需要避免在使用“_”作為國際化查找轉(zhuǎn)換功能的代碼塊中同時使用“_”作為臨時名稱。


名稱前的單下劃線(如:_shahriar)

程序員使用名稱前的單下劃線,用于指定該名稱屬性為“私有”。這有點類似于慣例,為了使其他人(或你自己)使用這些代碼時將會知道以“_”開頭的名稱只供內(nèi)部使用。正如Python文檔中所述:

以下劃線“_”為前綴的名稱(如_spam)應該被視為API中非公開的部分(不管是函數(shù)、方法還是數(shù)據(jù)成員)。此時,應該將它們看作是一種實現(xiàn)細節(jié),在修改它們時無需對外部通知。

正如上面所說,這確實類似一種慣例,因為它對解釋器來說確實有一定的意義,如果你寫了代碼“from <模塊/包名> import *”,那么以“_”開頭的名稱都不會被導入,除非模塊或包中的“__all__”列表顯式地包含了它們。了解更多請查看“Importing * in Python”。

名稱前的雙下劃線(如:__shahriar)

名稱(具體為一個方法名)前雙下劃線(__)的用法并不是一種慣例,對解釋器來說它有特定的意義。Python中的這種用法是為了避免與子類定義的名稱沖突。Python文檔指出,“__spam”這種形式(至少兩個前導下劃線,最多一個后續(xù)下劃線)的任何標識符將會被“_classname__spam”這種形式原文取代,在這里“classname”是去掉前導下劃線的當前類名。例如下面的例子: 

>>> class A(object):
... def _internal_use(self):
... pass
... def __method_name(self):
... pass
...
>>> dir(A())
['_A__method_name', ..., '_internal_use']

正如所預料的,“_internal_use”并未改變,而“__method_name”卻被變成了“_ClassName__method_name”。此時,如果你創(chuàng)建A的一個子類B,那么你將不能輕易地覆寫A中的方法“__method_name”。
 

>>> class B(A):
... def __method_name(self):
... pass
...
>>> dir(B())
['_A__method_name', '_B__method_name', ..., '_internal_use']

這里的功能幾乎和Java中的final方法和C++類中標準方法(非虛方法)一樣。

名稱前后的雙下劃線(如:__init__)

這種用法表示Python中特殊的方法名。其實,這只是一種慣例,對Python系統(tǒng)來說,這將確保不會與用戶自定義的名稱沖突。通常,你將會覆寫這些方法,并在里面實現(xiàn)你所需要的功能,以便Python調(diào)用它們。例如,當定義一個類時,你經(jīng)常會覆寫“__init__”方法。

雖然你也可以編寫自己的特殊方法名,但不要這樣做。
 

>>> class C(object):
... def __mine__(self):
... pass
...
>>> dir(C)
... [..., '__mine__', ...]

其實,很容易擺脫這種類型的命名,而只讓Python內(nèi)部定義的特殊名稱遵循這種約定。

相關文章

  • django channels使用和配置及實現(xiàn)群聊

    django channels使用和配置及實現(xiàn)群聊

    本文主要介紹了django channels使用和配置及實現(xiàn)群聊,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • 解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問題

    解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問題

    今天小編就為大家分享一篇解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python中l(wèi)strip()截掉字符的實例講解

    python中l(wèi)strip()截掉字符的實例講解

    在本篇文章里小編給大家整理的是一篇關于python中l(wèi)strip()截掉字符的實例講解內(nèi)容,有興趣的朋友們可以學習下。
    2021-05-05
  • anconda的pip下載包出現(xiàn)的問題解決

    anconda的pip下載包出現(xiàn)的問題解決

    本文主要介紹了anconda的pip下載包出現(xiàn)的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 沒有安裝Python的電腦運行Python代碼教程

    沒有安裝Python的電腦運行Python代碼教程

    你有沒有遇到過這種情況,自己辛苦碼完了代碼想發(fā)給別人運行看效果,可是對方竟然沒安裝Python,這要怎么運行呢?本篇文章帶你解決這個問題,需要的朋友快來看看
    2021-10-10
  • 對numpy中的where方法嵌套使用詳解

    對numpy中的where方法嵌套使用詳解

    今天小編就為大家分享一篇對numpy中的where方法嵌套使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 使用BeautifulSoup和Pandas進行網(wǎng)頁數(shù)據(jù)抓取與清洗處理

    使用BeautifulSoup和Pandas進行網(wǎng)頁數(shù)據(jù)抓取與清洗處理

    在數(shù)據(jù)分析和機器學習的項目中,數(shù)據(jù)的獲取,清洗和處理是非常關鍵的步驟,下面我們就來講講如何利用Python中的Beautiful Soup庫進行這樣的操作吧
    2025-02-02
  • python讀寫csv文件實例代碼

    python讀寫csv文件實例代碼

    在本篇文章中小編給各位分享了關于python讀取和寫入csv文件的知識點以及實例代碼,需要的朋友們參考下。
    2019-07-07
  • Python極簡代碼實現(xiàn)楊輝三角示例代碼

    Python極簡代碼實現(xiàn)楊輝三角示例代碼

    楊輝三角形因為其形式簡單,又有一定的使用價值,因此是入門編程題中被用的最多的,也是很好的語言實例標的。這篇文章就給大家介紹了Python極簡代碼實現(xiàn)楊輝三角的方法,文章給出了詳細的示例代碼和解釋,對大家理解很有幫助,感興趣的朋友們下面來一起看看吧。
    2016-11-11
  • 從基礎到進階帶你玩轉(zhuǎn)Python中的JSON

    從基礎到進階帶你玩轉(zhuǎn)Python中的JSON

    JSON是一種輕量級的數(shù)據(jù)交換格式,在Python中處理JSON數(shù)據(jù)是日常開發(fā)中的常見任務之一,本文將詳細介紹如何在Python中處理JSON對象,需要的可以參考下
    2024-12-12

最新評論

五原县| 如皋市| 广汉市| 碌曲县| 和林格尔县| 沙湾县| 西林县| 武陟县| 南乐县| 西丰县| 南充市| 新巴尔虎右旗| 武陟县| 南投县| 同心县| 博乐市| 潼关县| 乐业县| 若羌县| 南投市| 怀远县| 马山县| 南涧| 武定县| 江永县| 蒙阴县| 凤台县| 湘潭县| 桦川县| 长葛市| 射洪县| 板桥市| 南召县| 沙洋县| 阳城县| 运城市| 林西县| 大安市| 元阳县| 区。| 孝义市|