花点时间把python入门<三十一>——访问限制、修改成绩

1.访问限制
在class类内,包括了属性和方法,外部代码可以调用具体变量来调用,而且内部的逻辑也被隐藏,但是根据上篇实例可以看到
外部的代码可以自由修改每个属性name、score,如下:
代码

class Stu(object):
    def __init__(self,name,score):
        self.name=name
        self.score=score
    def get_grade(self):
        if self.score>90:
            return '优秀'
        elif self.score>80:
            return '良好'
        elif self.score>60:
            return '及格'
        else :
            return '不及格'
s1=Stu('小沈同学',100)
s2=Stu('小常同学',59)
print(s1.name,s1.get_grade())
print(s2.name,s2.get_grade())
#修改成绩
s2.score=1000
print(s2.score)
print(s2.name,s2.get_grade())

结果

小沈同学 优秀
小常同学 不及格
1000
小常同学 优秀  #修改成功

要想防止被外部改动,可以使用私有变量,即在class内的变量前加上两个‘_’,私有变量不允许被外部代码更改。
如下:

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

注:这里虽然说不能该,但是还是有办法改,因为python并不能阻止你做坏事,全靠自觉。
2.如果有想让外部代码可以修改class内的属性,可以这么做,定义一个函数

def set_score(self,score):
        if(0<=score<=100):
            self.__score = score
        else:
            return '无效的分数'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是不想再当小白的黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值