本文目錄一覽:
Python中的self有啥用 self.name=name這句話有啥作用
self是對“對象”自身的引用。相當於c++中的this。python中self在類的方法中必須以傳入參數寫在函數的參數列表中。它實際上是指向類的對象的一個類似於C++中指針的私有變量。
python規定:訪問類成員時,需要在前面加上this。這裡,this.name = name表示為Person類添加了屬性name。
如果變量前不加this,則視為局部變量。這個變量會在方法運行結束後失效。而屬性在整個類的範圍內都是有效的。
self是只有在類中才會有的。self在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。
擴展資料:
1、if 語句
1)基本用法:
if 要判斷的條件:條件成立的時候,要做的事情
else:條件不成立的時候,要做的事情
if和else語句以及各自的縮進部分都是一個完整的代碼塊
2、if 邏輯運算
and:
# 條件1 and 條件2
# 兩個條件同時滿足,就返回True
# 兩個條件都不滿足,返回False
python類里的私有變量如何定義
python沒有私有變量,任何定義的變量都是可以直接調用的,但是一般來說,在定義的變量前後加上兩個下劃線,把這樣的變量當成是私有變量,如下代碼所示:
class person:
def __init__(self):
self.__private__ = 100
p = person()
print(‘__private__:’, p.__private__)
print(‘p包含的變量: ‘,dir(p))
輸出:
__private__: 100
p包含的變量: [‘__class__’, ‘__delattr__’, ‘__dict__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__le__’, ‘__lt__’, ‘__module__’, ‘__ne__’, ‘__new__’, ‘__private__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘__weakref__’]
在python中什麼是私有變量域
默認情況下,Python中的成員函數和成員變量都是公開的(public),在python中沒有類似public,private等關鍵詞來修飾成員函數和成員變量。
在python中定義私有變量只需要在變量名或函數名前加上 ”__“兩個下劃線,那麼這個函數或變量就是私有的了。
作用域(scope),程序設計概念,通常來說,一段程序代碼中所用到的名字並不總是有效/可用的,而限定這個名字的可用性的代碼範圍就是這個名字的作用域。
作用域的使用提高了程序邏輯的局部性,增強程序的可靠性,減少名字衝突。
私有變量域就是私有變量的可用範圍。
在內部,python使用一種 name mangling 技術,將 __membername替換成 _classname__membername,也就是說,類的內部定義中,所有以雙下劃線開始的名字都被”翻譯”成前面加上單下劃線和類名的形式。
例如:為了保證不能在class之外訪問私有變量,Python會在類的內部自動的把我們定義的__spam私有變量的名字替換成為
_classname__spam(注意,classname前面是一個下劃線,spam前是兩個下劃線),因此,用戶在外部訪問__spam的時候就會
提示找不到相應的變量。
python中的私有變量和私有方法仍然是可以訪問的;訪問方法如下:
私有變量:實例._類名__變量名
私有方法:實例._類名__方法名()
其實,Python並沒有真正的私有化支持,但可用下劃線得到偽私有。 盡量避免定義以下劃線開頭的變量!
(1)_xxx “單下劃線 ” 開始的成員變量叫做保護變量,意思是只有類實例和子類實例能訪問到這些變量,需通過類提供的接口進行訪問;不能用’from module import *’導入。
(2)__xxx 類中的私有變量/方法名 (Python的函數也是對象,所以成員方法稱為成員變量也行得通。),” 雙下劃線 ” 開始的是私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據。
(3)__xxx__ 系統定義名字,前後均有一個“雙下劃線” 代表python里特殊方法專用的標識,如 __init__()代表類的構造函數。
更多Python知識請關注Python視頻教程欄目。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/251732.html