廖雪峰python摘录7
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了廖雪峰python摘录7相关的知识,希望对你有一定的参考价值。
1、我们想要限制实例的属性怎么办?比如,只允许对Student实例添加name
和age
属性。
为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的__slots__
变量,来限制该class实例能添加的属性:
2、使用__slots__
要注意,__slots__
定义的属性仅对当前类实例起作用,对继承的子类是不起作用的。
3、为了限制score的范围,可以通过一个set_score()
方法来设置成绩,再通过一个get_score()
来获取成绩,这样,在set_score()
方法里,就可以检查参数
4、由于Python允许使用多重继承,因此,MixIn就是一种常见的设计。
只允许单一继承的语言(如Java)不能使用MixIn的设计。
5、
这是因为直接显示变量调用的不是__str__()
,而是__repr__()
,两者的区别是__str__()
返回用户看到的字符串,而__repr__()
返回程序开发者看到的字符串,也就是说,__repr__()
是为调试服务的。
解决办法是再定义一个__repr__()
。但是通常__str__()
和__repr__()
代码都是一样的,所以,有个偷懒的写法:
1 >>> class Student(object): 2 def __init__(self,name): 3 self.name = name 4 def __str__(self): 5 return"Student object (name:%s)"%self.name 6 __repr__=__str__ 7 8 9 >>> s=Student(‘Mike‘) 10 >>> s 11 Student object (name:Mike)
以上是关于廖雪峰python摘录7的主要内容,如果未能解决你的问题,请参考以下文章