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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM