1. 程式人生 > >python 變數前的 單下劃線 雙下劃線

python 變數前的 單下劃線 雙下劃線

1.單下劃線

變數前的單下劃線表示表面上私有
但是其實這樣的例項變數外部是可以訪問的,但是,按照約定俗成的規定,當你看到這樣的變數時,意思就是,“雖然我可以被訪問,但是,請把我視為私有變數,不要隨意訪問”。

例子:

class convertstrtoint:
    _name = "zhangkun333"
    __namedede = "zhangkun444"

print convertstrtoint._name
print convertstrtoint.__namedede
#輸出
zhangkun333
Traceback (most recent call last):
File "C:/zqxt/devnav/pythonnav/test.py", line 74, in <module> print convertstrtoint.__namedede AttributeError: class convertstrtoint has no attribute '__namedede'

2.雙下劃線

變數前的單下劃線表示真正的私有,實際上的私有,只有內部可以訪問,外部不能訪問
但是有竅門,可以在類裡面增加get__namedede和set__namedede這樣的方法來突破限制,而且還能在方法裡做驗證

例子

class convertstrtoint
:
_name = "zhangkun333" __namedede = "zhangkun444" def get_namedede(self): return self.__namedede def set_namedede(self,s): self.__namedede = s print convertstrtoint._name rrr = convertstrtoint() print rrr.get_namedede() you = "you" rrr.set_namedede(you) print rrr.get_namedede()

其他(如:init):名稱前後的雙下劃線是一種慣例,對Python系統來說,這將確保不會與使用者自定義的名稱衝突。通常,你將會覆寫這些方法,並在裡面實現你所需要的功能,以便Python呼叫它們。例如,當定義一個類時,你經常會覆寫“init”方法

相關推薦

python 變數劃線 劃線

1.單下劃線 變數前的單下劃線表示表面上私有 但是其實這樣的例項變數外部是可以訪問的,但是,按照約定俗成的規定,當你看到這樣的變數時,意思就是,“雖然我可以被訪問,但是,請把我視為私有變數,不要隨意

python 劃線/劃線使用總結

Python 用下劃線作為變數字首和字尾指定特殊變數/方法。 主要存在四種情形 1.    1. object # public     2. __object__ # special, python system use, user should not define like it     3. __o

67 orm13查詢語句,外鍵查詢,多對多查詢 表查詢劃線方法

ever tle 基礎 lte ron -s 執行流程 first 什麽 主要內容:https://www.cnblogs.com/maple-shaw/articles/9403501.html 註意: 如果想要文件中運行整個django項目:   需要在文件中寫入:

python之路 -- 引號、引號&三引號

span 區別 執行 跨行 註銷 bold 雙引號 int col 單引號與雙引號完全一模一樣;沒有區別。例如: print(‘hello, world!‘)print("hello, world!")執行結果都是輸出:hello,world! 三引號可以表示註銷和

python 變數怎麼加r

>>> test='1234a567b' >>> condtion='a(.+?)' >>> import re >>> condtion='a(.+?)b' >>> result

python中的引號、引號、三引號

在Python的string前面加上‘r’, 是為了告訴編譯器這個string是個raw string,不要轉意 -----------------------------------------------------引號------------------------

python 劃線劃線

base print 定義 gpo pass erl spa ble ... 1 underline.py 2 __all__ = [‘_underline_variable‘, ‘__underline_variable‘, ‘_underline_func‘,

python(七) Python劃線劃線

www www. 自己 pro improt 分類 鏈接 默認 question Python中單下劃線和雙下劃線: 一、分類 (1)、以單下劃線開頭,表示這是一個保護成員,只有類對象和子類對象自己能訪問到這些變量。 以單下劃線開

Python劃線劃線有啥區別

__func__:一種約定,Python內部的名字,用來區別其他使用者自定義的命名,以防衝突。 _func:     一種約定,用來指定私有變數或私有函式(private) __func:   如果類中有一個方法與另外一個類中的一個方法同名了

Python類中的劃線劃線的區別

#"單下劃線" 開始的成員變數叫做保護變數,意思是隻有類物件和子類物件自己能訪問到這些變數; #"雙下劃線" 開始的是私有成員,意思是隻有類物件自己能訪問,連子類物件也不能訪問到 #-*-coding:utf8-*- class father(): def __init

Python劃線的區別總結

前言 Python 的程式碼風格由 PEP 8 描述。這個文件描述了 Python 程式設計風格的方方面面。在遵守這個文件的條件下,不同程式設計師編寫的 Python 程式碼可以保持最大程度的相似風格。這樣就易於閱讀,易於在程式設計師之間交流。 我們大家在學習Python的時候,好像

python劃線劃線

python 類中的單下劃線開頭的變量表示:該方法為類的私有方法,原則上外部不能訪問,但是用._XX是可以訪問到的 雙下劃線開頭則是強制外部不能直接訪問的用.__XX是訪問不到的,它內部其實是將變數名重新命名為:_類名__變數名,所以可以通過._類名__變數名訪問 #_*_coding:utf-8_

python 裡面的劃線劃線的區別

Python 用下劃線作為變數字首和字尾指定特殊變數。 _xxx 不能用’from moduleimport *'匯入 xxx 系統定義名字 __xxx 類中的私有變數名 核心風格:避免用下劃線作為變數名的開始。 因為下劃線對直譯器有特殊的意義,而且是內建識別符號所

python中那些劃線開頭得函式和變數

Python 用下劃線作為變數字首和字尾指定特殊變數 _xxx 不能用’from module import *’匯入 __xxx__ 系統定義名字 __xxx 類中的私有變數名 核心風格:避免用下劃線作為變數名的開始。 因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避

再談python的方法和屬性私有化:劃線劃線

1.python的私有化:_ xx: 公有變數 _x: 單前置下劃線,私有化屬性或方法,禁止通過from modules import *匯入,但是類物件和子類可以訪問 __xx:雙前置下劃線,避免與子類中的屬性命名衝突,無法在外部直接訪問(名字重整所以訪問不到),類物

python劃線劃線的區別

word 好的 特殊變量 ase 私有 前綴和 意思 解釋 __init__ Python 用下劃線作為變量前綴和後綴指定特殊變量。 _xxx 不能用‘from moduleimport *‘導入 __xxx__ 系統定義名字 __xxx 類中的私有變量名 核心風格:避免用

理解Python劃線命名(轉)

函數 python的函數 del 標準 開頭 變量名 cnblogs 通過 全局 add by zhj:今天在學習SimpleHTTPServer的源代碼時,看到了Python標準庫SocketServer模塊中有個BaseServer類,該類的__init__方法定義如下

python-day71--django多表劃線查詢及分組聚合

cts 劃線 django del 就是 auth 分組聚合 with 沒有 #====================================雙下劃線的跨表查詢===============# 前提 此時 related_name=bookList 屬性

面對對象之私有屬性,以及劃線 | Pythoon

指定 src 防止 什麽 mage 對象 class .com img # 在很多程序中會遇到__name,_name的標識符,在類中,如果屬性帶有雙 # 下劃線,表示私有屬性,通俗的講,就是不能在類命名空間外被直接調用,但是 # 可以通過方法來調用。 #

python類中的劃線方法

att 他還 ret sel col 只有一個 war span instance   __getitem__,__setitem__和__delitem__   實現了對象屬性的字典化操作。 class Person: def __init__(self, na