【Python】Flask 源码为什么使用property有些代码不用装饰器方式, 有些又用了?
最近看到flask的某段源码, 看到一个类定义里面, 有些属性使用了装饰器形式的property写法, 有些却用了property实例化的写法, 这是有什么用途呢?实在看不懂为什么?
def _get_static_url_path(self):if self._static_url_path is not None:
return self._static_url_path
if self.static_folder is not None:
return '/' + os.path.basename(self.static_folder)
def _set_static_url_path(self, value):
self._static_url_path = value
static_url_path = property(
_get_static_url_path, _set_static_url_path,
doc='The URL prefix that the static route will be registered for.'
)
del _get_static_url_path, _set_static_url_path
@property
def has_static_folder(self):
"""This is ``True`` if the package bound object's container has a
folder for static files.
.. versionadded:: 0.5
"""
return self.static_folder is not None
回答
殊途同归~ 确切的说:这俩达到的效果是相同的。
容我猜测一下,我猜这是个人风格的问题(不过,每个人随着时间的推移,风格也会变的)。不信你看~
还有一种情况,就是 当你只需要对某个值获取的时候进行处理的时候,注解的方式是比较简便快捷的~
以上是 【Python】Flask 源码为什么使用property有些代码不用装饰器方式, 有些又用了? 的全部内容, 来源链接: utcz.com/a/79890.html