python類的私有屬性和方法

2021-09-11 01:34:23 字數 1723 閱讀 7934

python 對於類的成員沒有嚴格的訪問控制限制

關於私有

屬性和私有方法,有如下要點:

兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public)。

類內部可以訪問私有屬性(方法)

類外部不能直接訪問私有屬性(方法),外部可以通過「_類名__私有屬性(方法)名」訪問私有屬性(方法)

class  students:

__company = 'ceb bank'#私有屬性

def __init__(self, name, age):

self.name = name

self.__age = age #私有例項屬性

def __work(self,job):

return('my job is '.format(job))

def print_company(self):

# 在類內部可以直接呼叫類的私有屬性和私有方法

print('name:,age:,'.format(self.name,self.__age,self.__work('testwork')))

s1 = students('zhuj', 18)

print(dir(s1))

print(s1.name)

print(s1._students__age) #print(s1.__age) #類的私有屬性在外部不能直接呼叫 可用通過 _students__age 來呼叫

print(s1._students__work('testwork1')) # __work() #類的私有方法在外部不能直接呼叫,可通過 _students__work來呼叫

s1.print_company()

[』_students__age』, 『_students__company』, 『_students__work』, 『class』, 『delattr』, 『dict』, 『dir』, 『doc』, 『eq』, 『format』, 『ge』, 『getattribute』, 『gt』, 『hash』, 『init』, 『init_subclass』, 『le』, 『lt』, 『module』, 『ne』, 『new』, 『reduce』, 『reduce_ex』, 『repr』, 『setattr』, 『sizeof』, 『str』, 『subclasshook』, 『weakref』, 『name』, 『print_company』]

zhuj

18my job is testwork1

name:zhuj,age:18,my job is testwork

python 類的私有屬性和方法

1.在類中以雙下劃線 開頭的屬性和方法即為私有屬性和方法,類的例項在外部無法直接呼叫,而在類中可以正常訪問 2.python的內部實現過程 3.因此a.num 會報錯,而a.a num就可以正常訪問私有屬性了 classa object def init self self.data 1 self....

Python 類的私有屬性和私有方法

xx 公有變數 xx 公有變數或方法,不能通過import匯入其他模組 只有模組內部使用 類物件和子類可以訪問 xx 私有變數或方法 偽私有 類外部不能直接訪問。xx 公有變數或方法,子類可以訪問。魔法方法或屬性 例如 init 不推薦這樣命名。xx 公有變數或方法。一般為了避免和python關鍵字...

類的私有屬性和私有方法

class role def init self,name,role,weapon,value 100,money 1500 建構函式 self.name name 例項變數 靜態屬性 作用域就是實力本身 self.role role self.weapon weapon self.value va...