如果没有定义setter或deleteter,为什么有人会使用@property?

Pet*_*mit 5 python properties decorator

在python代码中,我经常看到@property的使用.

如果我理解正确,可以使用属性函数定义getter setter和deleter.

如果未定义setter和deleter,为什么会使用@property(@ x.setter,@ x.deleter)?这与不使用@property完全相同吗?

bra*_*ers 7

它创建了一个不允许设置值的API.这在其他语言中类似于常量.

  • 常数?getter是一个函数,每次调用时都可以给出不同的结果.或者属性函数是否仅在对象的生命周期中进行一次评估,这没有意义.但我现在明白了什么是优势,但我不认为它与常数相似. (2认同)
  • 有绝对的差异,但也有一些重叠,我在这里使用*similar*的字面意思. (2认同)