为了账号安全,请及时绑定邮箱和手机立即绑定

如何把slots里的属性进行私有化​

class Student(object):
   __slots__ = ('name','score')
   def __init__(self, name, score):
       self.__name = name
       self.__score = score
   def print_score(self):
       print('%s: %s' % (self.__name, self.__score))
stu = Student('zhang',90)
stu.print_score()

上面的代码怎样写才能把slots里的属性值进行私有化

正在回答

2 回答

class Student(object):
   __slots = ('name','score')
   def __init__(self, name, score):
       self.__name = name
       self.__score = score
   def print_score(self):
       print('%s: %s' % (self.__name, self.__score))
stu = Student('zhang',90)
stu.print_score()

0 回复 有任何疑惑可以回复我~
#1

慕粉3631940

请问__slots=('name','score')是啥意思?
2017-06-29 回复 有任何疑惑可以回复我~

class Student(object):
   __slots = ('name','score')
   def __init__(self, name, score):
       self.__name = name
       self.__score = score
   def print_score(self):
       print('%s: %s' % (self.__name, self.__score))
stu = Student('zhang',90)
stu.print_score()


如果一个属性由双下划线开头(__),该属性就无法被外部访问。

但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

如何把slots里的属性进行私有化​

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号