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()