python3中的私有屬性和方法是以__兩個下划線開頭的:
class Woman(object): #定義一個woman類
def __init__(self,name):
self.name = name #公有屬性
self.__age = 22 #私有屬性
def __money(self): #私有方法
print("哈哈哈,我有很多存款")
obj1 = Woman("紅紅")
obj1.name #可以直接訪問
print(obj1.__age) #不可以直接訪問
obj1.__money #不可以直接訪問
第一種訪問:訪問私有屬性和方法的方式(在類內,普通方法可以訪問私有屬性和方法,然后再調用普通方法來訪問私有的):
class Woman(object):
def __init__(self,name):
self.name = name
self.__age = 22
def __money(self):
print("哈哈哈,我有很多存款")
def func_age(self): #定義一個普通方法來訪問 私有屬性
print("訪問到了你的年齡:%s" % self.__age)
def func_money(self): #定義一個普通方法來訪問 私有方法
self.__money()
obj1 = Woman("紅紅")
obj1.func_age()
obj1.func_money()
第二種訪問:訪問私有屬性和方法的方式(通過_類名__私有(屬性或方法))
class Woman(object):
def __init__(self,name):
self.name = name
self.__age = 22
def __money(self):
print("哈哈哈,我有很多存款")
obj1 = Woman("紅紅")
print(obj1._Woman__age) #通過_Woman__age
obj1._Woman__money() #通過_Woman__money()
