當前位置:首頁 » 編程語言 » python類的私有方法

python類的私有方法

發布時間: 2023-02-02 01:01:19

A. 如何訪問python類中的私有方法

>>>classMyClass:
def__init__(self):
print"initialize..."
def__play(self):
print"play..."


>>>a=MyClass()
initialize...
>>>a._MyClass__play()
play...
>>>dir(a)
['_MyClass__play','__doc__','__init__','__mole__']

python的私有是偽的,還是可以訪問到。 方法就是_類名__方法名,python不過是在以__開頭的方法名面前加了小動作導致訪問不到看起來像私有方法。

B. 如何訪問python類中的私有方法

>>> class MyClass: def __init__(self): print "initialize..." def __play(self): print "play..." >>> a = MyClass()initialize...>>> a._MyClass__play()play...>>> dir(a)['_MyClass__play', '__doc__', '__init__', '__mole__']python的私有是偽的,還是可以訪問到。 方法就是_類名__方法名,python不過是在以__開頭的方法名面前加了小動作導致訪問不到看起來像私有方法。

C. 求助Python高手,Python里有靜態方法和私有方法,這兩者有什麼區別呢

靜態方法不能訪問實例的屬性,私有訪問只能在類的內部訪問,不能被實例訪問,詳細看代碼:

classPerson:
age=0
wegiht=0
__sex=''
def__init__(self):
pass
@staticmethod
defget_stactic_age():
Person.age+=1#這里不能用self.age訪問
def__add(self):
print("這是一個私有方法,只能在類中使用")
defget_weight(self):
print("這是一個公有方法,可以被類的實例使用")
tom=Person()
tom.get_weight()#這個可以正常訪問
tom.__add()#這個不能正常訪問,報AttributeError:'Person'objecthasnoattribute'__add'異常

D. python外部訪問私有屬性的特殊結構是什麼

在實際開發中,對象的某些屬性或方法可能只希望在對象的內部被使用,而不希望在外部被訪問到。

私有屬性就是對象不希望公開的屬性。

私有方法就是對象不希望公開的方法。

在定義屬性或方法時,在屬性名或者方法名前增加兩個下劃線,定義的就是私有屬性或方

E. python 私有屬性與方法

一般來說,想訪問類成員變數,要麼用類訪問,要麼用實例訪問。實例訪問的是實例的副本,類訪問的是類的副本。
class A:
XXX = 0
def yy(self):
pass
A.XXX
或者,
a = A()
a.XXX
如果想從對象訪問類的副本,可以先拿到這個實例的類,再去訪問它的類成本
a.__class__.XXX
但你這個有點不一樣,你這個是類的私有成員變數,外面是無法訪問的(按照設計思路)。
一般穩健的方式是類的內部設置一個get()方法,調用get方法返回。
當然,如果你強行向訪問,可以這樣
a._A__XXX
但這種方法,訪問的仍然是對象自己的副本,不是類的
如果你想強行訪問,又想訪問的是類自己的副本,可以這樣
a.__class__._A__XXX
另外,找個好點的IDE吧,你這變數名字都拼錯了

F. Python如何為類元素(屬性和方法)提供私有性的方式

Python不支持私有成員。所有Python類中的成員都是公共的,可以從類外部調用或存取的。

所謂成員名前加一條或兩條下劃線「_func」或「__member」的方式只是一種約定俗成,提示用戶這個成員函數或變數只用於內部調用,不是設計給用戶使用的。即使如此,用戶只要想調用便可調用,無任何約束。

G. python 類繼承 私有方法和私有屬性

這種方式調用是可以的,不能直接調用。

也就是在class B 中不能直接像這樣調用

H. Python中的面向對象(高級)之私有方法、多繼承、多態

特徵:私有屬性與私有方法不能從外部被調用,也不能被子類繼承

唯一寫法:在屬性或方法前面加上__(兩個下劃線)

我們寫一個簡單的例子,創建一個類,包含私有方法、私有屬性、普通方法、普通屬性,並生成一個實例

私有屬性和私有方法可以從內部被調用(總不能我寫了,但是哪都不讓用吧)

我們試試在類里再加入一個新的方法,調用私有方法和屬性

可以看到,私有屬性和私有方法是可以在類內部被調用的。

舉個私有屬性應用場景的例子


二。object類

我們試一下


三。多繼承

一個子類可以繼承多個父類,用逗號隔開

多個父類中有同名方法時,按照繼承順序進行調用


四。多態

當不同的實例,有同名的方法時,我們可以一個函數,傳入不同的實例,執行對應的方法。

我們定義一個貓和一個狗的類,兩個類中都有'叫'的方法。並各生成一個實例。

定義一個函數,用函數來調用'叫'的方法

這就叫多態。

I. 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)。這樣做會提醒其他程序員這個屬性是私有的,但是並不會阻止類外部的訪問。
還有其他問題嗎?

J. Python中的私有方法是怎麼樣表示的

>>> class Template():
def ___haha():
pass

>>> t=Template()
>>> dir(t)
['_Template___haha', '__doc__', '__myole__']
當方法以__開頭後,會認為它是一個私有的方法,外部不能調用,其實是因為python幫我們改名了,如上所式的___haha方法變成了
_+類名+原方法名的形式

熱點內容
安卓和蘋果哪個最保值 發布:2024-11-02 02:30:02 瀏覽:603
橋接的網關伺服器地址怎麼查 發布:2024-11-02 02:29:11 瀏覽:861
電腦里dns伺服器未響應咋辦 發布:2024-11-02 02:28:24 瀏覽:543
星與雲伺服器 發布:2024-11-02 02:27:49 瀏覽:205
centos升級python27 發布:2024-11-02 02:00:57 瀏覽:673
ue4未找到編譯器 發布:2024-11-02 01:46:08 瀏覽:155
python中的withopen 發布:2024-11-02 01:46:07 瀏覽:976
編程名人 發布:2024-11-02 01:42:18 瀏覽:867
伺服器電腦配置表 發布:2024-11-02 01:41:29 瀏覽:370
linux使用串口 發布:2024-11-02 01:37:11 瀏覽:702