python 如何定义和访问访问私有属性,方法

# coding=utf-8
class Test:
    def __init__(self, name):
        """_get_hobby一个下划线开头表示protected保护变量属性或者方法,只可以被类和子类调
           __age 双下划线开头表示private私有属性或者方法更加苛刻,只可以类内部调用不可以被外部调用
           没有下划线默认为public公共方法或变量,任何类方法都可以调
           私有属性方法访问不可以直接通过类的对象访问会抛异常,但是可以用instance._ClassName__method()来访问,属性则用
           instance._ClassName__age来访问
           protected属性方法访问,通过instance._method(),属性直接instance.attribute
        """
        self.name = name   # public attribute
        self.__age = 5      # private attribute
        self._get_hobby = "eat"  # protected attribute

    # private method
    def __get_age(self):
        return self.__age

    # protected method
    def _get(self):
        return self._get_hobby

if __name__ == "__main__":
    p = Test('candy')  # instance
    # print(p.__get_age() ) # 抛出异常,不能直接对象访问私有方法
    print p._Test__get_age(), p._Test__age  # 访问私有方法
    print p._get(), p._get_hobby   # 访问保护方法

		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值