茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    Python中下劃線的使用方法
    來源:易賢網(wǎng) 閱讀:1223 次 日期:2015-03-31 15:38:07
    溫馨提示:易賢網(wǎng)小編為您整理了“Python中下劃線的使用方法”,方便廣大網(wǎng)友查閱!

    這篇文章主要介紹了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ù)名稱,這似乎源自并遵循相應(yīng)的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)應(yīng)該被視為API中非公開的部分(不管是函數(shù)、方法還是數(shù)據(jù)成員)。此時,應(yīng)該將它們看作是一種實現(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)部定義的特殊名稱遵循這種約定。

    更多信息請查看IT技術(shù)專欄

    更多信息請查看數(shù)據(jù)庫
    易賢網(wǎng)手機網(wǎng)站地址:Python中下劃線的使用方法
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)