加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python – @ property与__init __()中的设置有什么区别?

发布时间:2020-12-20 11:59:16 所属栏目:Python 来源:网络整理
导读:无法从这个问题的其他主题得到一个直接的答案: 在Python中,使用之间的主要区别是什么 class Foo(object): def __init__(self,x): self.x = x 和 class Foo(object): def __init__(self,x): self._x = x @property def x(self): return self._x 通过它使用@p
无法从这个问题的其他主题得到一个直接的答案:

在Python中,使用之间的主要区别是什么

class Foo(object):
  def __init__(self,x):
    self.x = x

class Foo(object):
  def __init__(self,x):
    self._x = x

  @property
  def x(self):
    return self._x

通过它使用@property以这种方式看起来使x只读..但也许有人有更好的答案?谢谢/弗雷德

解决方法

对于您的示例,是的,这允许您具有只读属性.此外,属性可以让您看起来拥有比实际更多的属性.考虑一个带有.radius和.area的圆圈.该区域可以根据半径计算,而不必同时存储

import math

class Circle(object):
    def __init__(self,radius):
        self.radius = radius

    @property
    def area(self):
        return math.pi * (self.radius ** 2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读