美文网首页
python类属性访问限制

python类属性访问限制

作者: Oneshot_fea8 | 来源:发表于2019-01-09 21:20 被阅读0次
    class Student(object):
    
        def __init__(self, name, score):
            self.__name = name              # 双下划线变为private,只有内部可以访问
            self.__score = score
    
        def get_name(self):                 # 外部获取属性的办法
            return self.__name
    
        def get_score(self):                # 允许外部代码修改属性
            return self.__score
    
        def set_score(self, score):
            if 0 <= score <= 100:
                self.__score = score
            else:
                raise ValueError('bad score')
    #费尽周折定义方法来修改属性的原因:
    #在方法中可以对参数做检查,避免传入无效的参数
        def get_grade(self):
            if self.__score >= 90:
                return 'A'
            elif self.__score >= 60:
                return 'B'
            else:
                return 'C'
    
    bart = Student('Bart Simpson', 59)
    print('bart.get_name() =', bart.get_name())
    bart.set_score(60)
    print('bart.get_score() =', bart.get_score())
    
    print('DO NOT use bart._Student__name:', bart._Student__name)
    #可以通过_Student__name来访问__name变量,但不建议这么干(基于不同的python解释器)  
    
    #输出结果:
    bart.get_name() = Bart Simpson
    bart.get_score() = 60
    DO NOT use bart._Student__name: Bart Simpson  
    

    相关文章

      网友评论

          本文标题:python类属性访问限制

          本文链接:https://www.haomeiwen.com/subject/kdrnrqtx.html