python中private、protected&public

private:
1.在类中的属性或者方法前加上两条下划线“__”,该属性或方法就变成了私有的了,只能在类内访问。
2.如果想从外部访问私有属性或者方法(不建议访问),有两种方法,一是定义一个函数进行访问,二是对私有的属性或者方法的名字进行转换为:一个下划线“_”+类名+私有属性或者方法的名字。

protected:
1.在类中的属性或者方法前加上单下划线“_”,该属性或者方法就变成protected, 只能类内访问或者子类访问

public:
1.没有下划线的是public, 可以类外、类内、子类访问

特殊方法:
1.(what)什么是特殊方法:__xx__表示的是特殊属性或者方法,不要定义这类变量名,这是python内部定义的变量名
2.(how)如何使用:一般不用我们自己调用,在某些情况下会自动调用,例如,object[key]会触发 特殊方法getitem (self, value)运行,object[key]=value会触发 特殊方法setitem(self,key,value)运行,但是在继承抽象基类时候可能需要实现某些基类方法

例子:

class Student(object):
    def __init__(self,name,score):
        self.__name = name
        self.__score = score

    def get_name(self):
        print(self.__name)

if __name__ == "__main__":
    a = Student('xiaoming',90)
    print(a._Student__name)
    print(a.get_name())

输出:

xiaoming  #通过私有属性名字转换得到a.Student_name得到
xiaoming  #通过定义一个函数get_name得到
None  #不知道这里为什么会多一个None??????????好奇怪,先留个疑问

再来

class Student(object):
    def __init__(self,name,score,height):
        self.__name = name
        self.__score = score
        self._height = height
    def get_name(self):
        print(self.__name)

class Student1(Student):
    def get_height(self):
        print(self._height)#子类可以访问保护类
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值