python3面向对象(3)私有属性和方法以及访问私有属性和方法的方式
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()