python私有類
① python 類中的私有屬性有哪些
類的私有屬性:
__private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直接訪問。
在類內部的方法中使用時 self.__private_attrs。
類的方法:
在類地內部,使用def關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數
類的私有方法 :
__private_method:兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用。
在類的內部調用 self.__private_methods
實例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class JustCounter:
__secretCount = 0 # 私有變數
publicCount = 0 # 公開變數
def count(self):
self.__secretCount += 1
self.publicCount += 1
print self.__secretCount
counter = JustCounter()
counter.count()
counter.count()
print counter.publicCount
print counter.__secretCount # 報錯,實例不能訪問私有變數
Python不允許實例化的類訪問私有數據,但你可以使用 object._className__attrName 訪問屬性,將如下代碼替換以上代碼的最後一行代碼:
…………………….
print counter._JustCounter__secretCount
這樣就可以訪問私有屬性了
② Python中的面向對象(高級)之私有方法、多繼承、多態
特徵:私有屬性與私有方法不能從外部被調用,也不能被子類繼承
唯一寫法:在屬性或方法前面加上__(兩個下劃線)
我們寫一個簡單的例子,創建一個類,包含私有方法、私有屬性、普通方法、普通屬性,並生成一個實例
私有屬性和私有方法可以從內部被調用(總不能我寫了,但是哪都不讓用吧)
我們試試在類里再加入一個新的方法,調用私有方法和屬性
可以看到,私有屬性和私有方法是可以在類內部被調用的。
舉個私有屬性應用場景的例子
二。object類
我們試一下
三。多繼承
一個子類可以繼承多個父類,用逗號隔開
多個父類中有同名方法時,按照繼承順序進行調用
四。多態
當不同的實例,有同名的方法時,我們可以一個函數,傳入不同的實例,執行對應的方法。
我們定義一個貓和一個狗的類,兩個類中都有'叫'的方法。並各生成一個實例。
定義一個函數,用函數來調用'叫'的方法
這就叫多態。
③ python中通過什麼聲明該屬性為私有,不能在類地外直接訪問
在Python中,通過在屬性名稱前面添加兩個下劃線(__)來聲明該屬性為私有屬性。例如:
class MyClass:
def __init__(self):
self.__private_attribute = 0
def set_private_attribute(self, value):
self.__private_attribute = value
def get_private_attribute(self):
return self.__private_attribute
-----------------------------------end----------------------------------
在這個例子中,__private_attribute 屬性是私有屬性,無法在類外部直接訪問。你只能通過 set_private_attribute 和 get_private_attribute 方法來訪問它。
在Python中,私有屬性不能直接訪問,但是它們可以被訪問。如果你真的想要阻止類外部的訪問,可以將屬性名稱改為一個不常用的名稱,比如以一個下劃線開頭(例如,_private_attribute)。這樣做會提醒其他程序員這個屬性是私有的,但是並不會阻止類外部的訪問。
還有其他問題嗎?
④ python中如何定義類
一、類定義:
class <類名>:
<語句>
類實例化後,可以使用其屬性,實際上,創建一個類之後,可以通過類名訪問其屬性
如果直接使用類名修改其屬性,那麼將直接影響到已經實例化的對象
類的私有屬性:
__private_attrs兩個下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直接訪問
在類內部的方法中使用時self.__private_attrs
類的方法
在類地內部,使用def關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數
私有的類方法
__private_method兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用
在類的內部調用slef.__private_methods
類的專有方法:
__init__構造函數,在生成對象時調用
__del__析構函數,釋放對象時使用
__repr__列印,轉換
__setitem__按照索引賦值
__getitem__按照索引獲取值
__len__獲得長度
__cmp__比較運算
__call__函數調用
__add__加運算
__sub__減運算
__mul__乘運算
__div__除運算
__mod__求余運算
__pow__稱方
示例:
[python]view plain
#類定義
classpeople:
⑤ python命名規則是什麼
1、模塊
模塊盡量使用小寫命名,首字母保持小寫,盡量不要用下劃線。
2、類名
類名使用駝峰(CamelCase)命名風格,首字母大寫,私有類可用一個下劃線開頭。
3、函數
函數名一律小寫,如有多個單詞,用下劃線隔開。
4、變數名
變數名盡量小寫, 如有多個單詞,用下劃線隔開。
5、常量
常量使用以下劃線分隔的大寫命名。
基本語法:
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。
它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Python開發者有意讓違反了縮進規則的程序不能通過編譯,以此來強製程序員養成良好的編程習慣。並且Python語言利用縮進表示語句塊的開始和退出,而非使用花括弧或者某種關鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出。縮進成為了語法的一部分。