关于如何在 python 中使用属性功能的真实示例?

2023-11-26

我对如何使用感兴趣@property在Python中。我已经阅读了 python 文档,在我看来,其中的示例只是一个玩具代码:

class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

我不知道包装可以带来什么好处_x充满属性装饰器。为什么不直接实现为:

class C(object):
    def __init__(self):
        self.x = None

我认为,属性功能在某些情况下可能很有用。但当?有人可以给我一些现实世界的例子吗?


其他示例包括验证/过滤设置的属性(强制它们在范围内或可接受的范围内)以及复杂或快速变化的术语的惰性评估。

隐藏在属性背后的复杂计算:

class PDB_Calculator(object):
    ...
    @property
    def protein_folding_angle(self):
        # number crunching, remote server calls, etc
        # all results in an angle set in 'some_angle'
        # It could also reference a cache, remote or otherwise,
        # that holds the latest value for this angle
        return some_angle

>>> f = PDB_Calculator()
>>> angle = f.protein_folding_angle
>>> angle
44.33276

验证:

class Pedometer(object)
    ...
    @property
    def stride_length(self):
        return self._stride_length

    @stride_length.setter
    def stride_length(self, value):
        if value > 10:
            raise ValueError("This pedometer is based on the human stride - a stride length above 10m is not supported")
        else:
            self._stride_length = value
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于如何在 python 中使用属性功能的真实示例? 的相关文章

随机推荐

  • 禁止直接分配到多对多集合的前端。使用 emails_for_help.set() 代替

    我是 Django 新手 没有找到有关此问题的任何参考资料 当我在 Django 模型中使用多对多字段时 出现此错误 models py 我猜问题是在视图中分配 m2m 字段 views py 来自表格 forms py 如何在视图中分配
  • Python asyncio:未引用的任务被垃圾收集器销毁?

    我正在编写一个程序 它通过 AMQP 接受 RPC 请求以执行网络请求 CoAP 处理 RPC 请求时 aioamqp 回调会生成负责网络 IO 的任务 这些任务可以被视为后台任务 它们将无限期地运行以通过 AMQP 流式传输网络响应 在这
  • 如果最多出现两次点和破折号,则正则表达式匹配

    我需要一个正则表达式来匹配最多包含 2 个破折号和 2 个点的任何字符串 不一定要有破折号或点 但如果有 3 个以上破折号or3 个点或什至同时包含 3 个以上破折号和 3 个以上点 则正则表达式不得与字符串匹配 旨在用于 PHP 我知道使
  • Shell 脚本:从 shell 脚本中执行 python 程序

    我尝试用谷歌搜索答案 但没有运气 我需要使用我的作品超级计算机服务器 但为了运行我的 python 脚本 它必须通过 shell 脚本执行 例如我想要job sh执行python script py 如何才能做到这一点 只需确保 pytho
  • 使用 Moq 模拟惰性接口

    我想要模拟惰性接口 但我得到了object reference not set to an instance of an object例外 这是正在测试的类 public class ProductServiceService IProdu
  • 无法使用 rbenv 在 OSX 10.10 GM 3.0 上构建 Ruby 2.1.3

    我发现其他用户也遇到过类似问题的几个线程 但似乎没有一个是这样的 发出命令后 rbenv install 2 1 3 我收到以下错误 Installing ruby 2 1 3 BUILD FAILED OS X 10 10 using r
  • 为什么 AntiForgeryToken 隐藏字段与我机器上的 cookie 不同?

    我刚刚通过修改默认登录表单 使用简单的 ASP NET MVC 3 示例进行了快速测试 根据本文 都是隐藏域 RequestVerificationToken和饼干 RequestVerificationToken Lw 必须包含与生成的值
  • SQL Server:以编程方式执行维护计划

    有没有办法以编程方式执行 启动 SQL Server 维护计划 我们有一个每晚运行并使用大量数据更新数据库的 Windows 服务 一旦完成 我们希望触发数据库中的维护计划以开始运行 您可以通过以下方式开始一项属于维护计划一部分的工作sp
  • 首先使用 Entity Framework 4 代码在 DbContext.DbSet 中实现 InsertOnSubmit 等效项

    我正在使用实体框架代码优先方法 并且正在构建提供数据访问的通用存储库类 在这堂课上我想要一个Add T entity 方法 然而 没有InsertOnSubmit方法作为DbSet
  • 如何在运行时动态加载 ASP.NET Core Razor 视图

    是否可以在运行时从单独的程序集中引用 ASP NET Core Razor 视图 我知道如何使用动态加载控制器IActionDescriptorChangeProvider但找不到查看视图的方法 我想创建一个简单的插件系统并管理插件而无需重
  • Istio - 使用 URI 正则表达式匹配进行 URI 重写

    对 Istio 比较陌生 有一个关于 Istio 的问题 假设我想根据路径重写 URI 但在重写中使用原始 URI 的一部分 这是我可以使用 Regex 做的事情吗 我正在想象这样的事情 http match uri regex s can
  • 是否可以使用 .NET DeflateStream 创建 pdf?

    我正在尝试通过 C 代码创建 pdf 文件的功能 我一直在研究 PDF 规范 并能够创建一个工作 PDF 文件 方法是获取数据字符串并使用 UTF8 编码将它们编码为字节数组 我遇到的问题是当我尝试使用DeflateStream在 pdf
  • 如何重置行名称?

    这是一个示例数据集 sample1 lt data frame Names letters 1 10 Values sample seq 0 1 1 0 1 当我对数据集重新排序时 我丢失了行名称顺序 sample1 order sampl
  • 地图元素合适的 WAI-ARIA 角色属性是什么

    在我的网页中 我有一半是使用谷歌地图的地图显示 什么aria role我应该补充一下吗canvas显示地图的元素 我看过WAI ARIA 文档对于可能的角色定义 我发现的最接近的是widget 什么是合适的aria role页面上有地图吗
  • EC2 Linux 计算机上安装的 OpenJDK 8 不支持 ECDHE 密码套件

    启动时jetty distribution 9 3 0 v20150612 with openjdk 1 8 0 51在 EC2 Amazon Linux 计算机上运行时 打印出所有配置的 ECDHE 套件均不受支持 2015 08 12
  • (.net) CriticalFinalizerObject - 它到底有什么作用?

    我对这个类的理解是 当您想确保调用该类的终结器 析构函数 时应该使用它 但从我所做的一些测试来看 这似乎并不正确 如果它不能确保调用 dispose 方法 是否还有其他方法可以做到这一点 例如 如果我想确保运行某些代码来结束我的对象 即使我
  • ANSI C 联合 - 它们真的有用吗?

    从昨天对某个问题的回答中 我了解到 假设成员的底层对齐 写入一个联合成员并从另一个不同类型的成员读取值是不可移植且不安全的 因此 经过一些研究 我找到了一个书面来源 它重复了这一主张并指定了一个流行的示例 使用 int 和 float 的联
  • 如果 ngSrc 路径解析为 404,是否有办法回退到默认值?

    我正在构建的应用程序要求我的用户在加载此图像之前设置 4 条信息 该图像是应用程序的核心部分 因此损坏的图像链接使整个事情看起来像是被破坏了 我想要另一个图像代替 404 上的位置 有任何想法吗 我想避免为此编写自定义指令 我很惊讶我找不到
  • 在 iPhone Simulator 4.3/XCode 4.2 和 4.0.2 中使用 Blocks 会导致应用程序崩溃

    还有其他人在 XCode 4 2 lion 或 4 0 2 中使用 4 3 iPhone 模拟器时遇到问题吗 我的代码已经长期运行 测试并在生产中使用块来指定完成操作 例如 我使用 UIView animate 淡出标签顶部的一些文本 如下
  • 关于如何在 python 中使用属性功能的真实示例?

    我对如何使用感兴趣 property在Python中 我已经阅读了 python 文档 在我看来 其中的示例只是一个玩具代码 class C object def init self self x None property def x s