1. 程式人生 > >python3面向物件(3)私有屬性和方法以及訪問私有屬性和方法的方式

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