廖大博客学习笔记
最近见天一直在看廖大的Python教程,却发现很多基础看着很简单,但却不会应用,归根结底还是因为理解不到位,故而又将教程学了一遍,并将自己的理解记录一下,也方便后面查阅。由于没有相关编程基础,有些理解可能是错的,敬请批评指正。
想深入具体学习廖大博客请移步廖雪峰的官方网站
在Python中,如果class实例内的变量以__(双下划线)开头,就是一个私有变量,只有内部可以访问,外部不能访问。
注意:以__开头、以__结尾的,不是私有变量,而特殊变量,特殊变量可以从外部访问。
将变量设为私有变量可对参数进行验证,提高代码健壮性,当需要读取或设置变量时,可再添加相应的读取、设置方法来实现
但用set、get方法设置和读取属性值通常不太直观,因而也可用装饰器实现。
@property后的第一个score函数实现了get功能,@score.setter是@property的副产品,用于设定属性值。class Student(object):
def __init__(self, score):
self.__score = score
@property def score(self): return self.__score @score.setter def score(self, value): if not isinstance(value, int): raise ValueError('score must be an integer!') if value < 0 or value > 100: raise ValueError('score must between 0 ~ 100!') self.__score = value