一文搞懂property函数
接下来我带大家了解一个函数的作用以及使用技巧,希望对大家都有帮助,话不多说,接下来就开始我的表演
特性
- 通过存取方法定义的属性通常称为特性(property)
- 让所有的属性看起来都一样
首先property
有两种用法,一种是作为函数的用法,一种是作为装饰器的用法,接下来我们就逐一分析
property函数
看一下作为函数它包含的参数都有哪些
property(fget=None, fset=None, fdel=None, doc=None)
分析
fget
是获取属性值的方法。
fset
是设置属性值的方法。
fdel
是删除属性值的方法。
doc
是属性描述信息。如果省略,会把fget方法的docstring拿来用(如果有的话)
首先在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把属性随便改,如下例子
class Student(object):
pass
s = Student
s.score = 99
print(s.score) # 99
像上面这样写肯定是不行的,我们传入的属性值根本就无法去进行验证,看一下不用property函数的例子
class Student:
def __init__(self):
self._score = ''
def get_score(self):
return self._score
def set_score(self, val