python property源码_【Python】Flask 源码为什么使用property有些代码不用装饰器方式, 有些又用了?...

这篇博客探讨了Python Flask框架中property装饰器的两种使用方式:直接使用和实例化。作者指出,这两种方式在效果上是相同的,可能只是个人编程风格的选择。当仅需处理属性获取时,注解方式更为简洁。博客还提到了property在处理类属性时的作用,特别是对于动态设置和获取类的静态_url_path属性的情况。
摘要由CSDN通过智能技术生成

最近看到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

回答

殊途同归~ 确切的说:这俩达到的效果是相同的。

容我猜测一下,我猜这是个人风格的问题(不过,每个人随着时间的推移,风格也会变的)。不信你看~

还有一种情况,就是 当你只需要对某个值获取的时候进行处理的时候,注解的方式是比较简便快捷的~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值