有没有办法在Python中创建类属性?

2023-11-23

由于某种原因,以下内容不起作用:

>>> class foo(object):
...     @property
...     @classmethod
...     def bar(cls):
...             return "asdf"
... 
>>> foo.bar
<property object at 0x1da8d0>
>>> foo.bar + '\n'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'property' and 'str'

有没有办法做到这一点,或者是我诉诸某种元类技巧的唯一选择?


如果你想要描述符property当您从对象 X 获取属性时触发,则必须将描述符放入type(X)。因此,如果 X 是一个类,则描述符必须位于该类的类型中,也称为该类的元类——不涉及“欺骗”,这只是一个完全通用的规则问题。

或者,您可以编写自己的专用描述符。看here一个关于描述符的优秀“操作方法”条约。Edit例如:

class classprop(object):
  def __init__(self, f):
    self.f = classmethod(f)
  def __get__(self, *a):
    return self.f.__get__(*a)()

class buh(object):
  @classprop
  def bah(cls): return 23

print buh.bah

emits 23, 如预期的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在Python中创建类属性? 的相关文章

  • GUI 测试工具 PyUseCase 与 Dogtail 相比如何?

    GUI测试工具如何Py用例 http pypi python org pypi PyUseCase重命名为故事文本 http pypi python org pypi StoryText 相比于Dogtail http en wikiped
  • 如何同时运行多个功能[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有以下代码 my func1 my func2 my func3 my func4 my func5 是否可以同时计算函数的数据 而
  • 从内存地址创建python对象(使用gi.repository)

    有时我需要调用仅存在于 C 中的 gtk gobject 函数 但返回一个具有 python 包装器的对象 之前我使用过基于 ctypes 的解决方案 效果很好 现在我从 PyGtk import gtk 切换到 GObject intro
  • DynamodB:如何更新排序键?

    该表有两个键 filename 分区键 和eventTime 排序键 我要更新eventTime对于某些filename Tried put item and update item 发送相同的filename与新的eventTime但这些
  • 如何在 Pandas Python 中按 id 对行进行排名

    我有一个像这样的数据框 id points1 points2 1 44 53 1 76 34 1 63 66 2 23 34 2 44 56 我想要这样的输出 id points1 points2 points1 rank points2
  • 如何通过 python 中的函数运行列表?

    我试图通过我创建的函数运行我的列表 但不断收到错误 我不知道出了什么问题 温度 F temp f 19 21 21 21 23 功能 def fahrToCelsius tempFahrenheit return tempFahrenhei
  • 使用 Boto3 超时的 AWS Lambda 函数

    我已经解决了我自己的问题 但无论如何我都会发布它 希望能节省其他人几个小时 我在 AWS 上有一个无服务器项目 使用 Python 将记录插入到 kinesis 队列中 但是 当我使用 boto3 client kinesis 或 put
  • NSUserNotificationCenter.defaultUserNotificationCenter() 使用 PyInstaller 返回 None

    我正在尝试将通知发送到通知中心 Mac OSX 我正在使用 PyObjC 绑定来使用我们的 python 应用程序中的 cocoa api 我正在使用以下代码片段 import Foundation import objc NSUserNo
  • 获取 Keras model.summary() 作为表

    我在 Keras 中创建了相当大的模型 我正在用 LaTeX 写一篇关于它的文章 为了很好地描述 LaTeX 中的 keras 模型 我想用它创建一个 LaTeX 表 我可以手动实现它 但我想知道是否有任何 更好 的方法来实现这一点 我四处
  • 如何知道python运行脚本的路径?

    sys arg 0 给我 python 脚本 例如 python hello py 返回 sys arg 0 的 hello py 但我需要知道 hello py 位于完整路径中的位置 我怎样才能用Python做到这一点 os path a
  • 了解 Python 2.7 中的缩进错误

    在编写 python 代码时 我往往会遇到很多缩进错误 有时 当我删除并重写该行时 错误就会消失 有人可以为菜鸟提供 python 中 IndentationErrors 的高级解释吗 以下是我在玩 CheckIO 时收到的最近 inden
  • Pandas 字典键到列[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 index column1 e1 u c680 5 u c681 1 u c682 2 u c57 e2 u c680 6 u c681 2 u c682 1 u c57 e3 u c68
  • 在 django 中导入设置时出现奇怪的错误

    我有很多项目在 ubuntu 中使用 python2 7 和 virtualenv virtualenvwrapper 工作 在我的工作中 一些开发人员使用 macosx 和 windows 通常我像往常一样创建项目 django admi
  • 使用 ElementTree 在 python 中解析 xml

    我对 python 很陌生 我需要解析一些脏的 xml 文件 这些文件需要先清理 我有以下 python 代码 import arff import xml etree ElementTree import re totstring wit
  • 哪种方式最适合Python工厂注册?

    这是一个关于这些方法中哪一种被认为是最有效的问题 Pythonic 我不是在寻找个人意见 而是在寻找惯用的观点 我的背景不是Python 所以这会对我有帮助 我正在开发一个可扩展的 Python 3 项目 这个想法类似于工厂模式 只不过它是
  • 获取多个同名请求参数

    我的问题是给定的代码 from flask import Flask request app Flask name app route def hello return str request values get param None a
  • AWS 将 MQTT 消息存储到 DynamoDB

    我构建了一个定期发送 MQTT 消息的 python 脚本 这是发送到后端的 JSON 字符串 Id 1234 Ut 1488395951 Temp 22 86 Rh 48 24 在后端 我想将 MQTT 消息存储到 DynamoDB 表中
  • SQLAlchemy 与 count、group_by 和 order_by 使用 ORM

    我有几个函数需要使用 count group by 和 order by 进行一对多连接 我使用 sqlalchemy select 函数生成一个查询 该查询将返回一组 id 然后我对其进行迭代以对各个记录执行 ORM 选择 我想知道是否有
  • PyObjC + Python 3.0 问题

    默认情况下 Cocoa Python 应用程序使用默认的 Python 运行时版本 2 5 如何配置我的 Xcode 项目以便它使用较新的 Python 3 0 运行时 我尝试用新版本替换项目中包含的Python framework 但它不
  • 从 Django 运行 shell 命令

    我正在 Django 中开发一个网页 使用 apache 服务器 需要调用 shell 命令来启用 禁用一些守护进程 我尝试这样做 os system service httpd restart 1 gt HOME out 2 gt HOM

随机推荐

  • MySQL触发器/过程执行延迟

    有没有一种好的方法可以延迟mysql触发器的执行 WHILE condition 0 sleep for awhile insert into some table values NEW value1 NEW value2 从 MySQL
  • “帖子的链接必须指向应用程序的连接或画布 URL”- 错误

    我正在尝试发布到用户墙 但当共享窗口弹出时我收到此错误 The post s links must direct to the application s connect or canvas URL 现在 我进行了适当的 Google 搜索
  • 打破 R 中的嵌套循环

    非常简单的示例代码 仅用于演示 没有任何用处 repeat while 1 gt 0 for i in seq 1 100 break usually tied to a condition break break print finish
  • .NET Core Entity Framework - 在类库中添加 Context 迁移

    我在将初始迁移添加到 NET Core 类库内的实体框架数据库上下文时遇到问题 当我跑步时 dotnet ef migrations add migrationName c PlaceholderContext 我收到错误 Could no
  • 调试器可视化工具和“类型未标记为可序列化”

    我正在尝试创建一个调试器可视化工具 它可以显示任何内容的控制层次结构Control 已完成 但我遇到了例外 类型未标记为可序列化 我该如何克服这个问题 控件是 NET Windows Forms框架类型 我无法将其标记为可序列化 您还需要实
  • 为什么 const 允许参数中引用的隐式转换?

    这听起来像是一个愚蠢的问题 但我对以下行为感到困惑 void funcTakingRef unsigned int arg std cout lt lt arg void funcTakingByValue unsigned int arg
  • 带或不带引号的 JSON 对象

    我正在尝试学习 JSON 我了解到任何带有双引号的键的 javascript 对象都被视为 JSON 对象 我构建了这个对象 var jstr1 mykey my value 但是当我尝试使用 JSON parse jstr1 进行解析时
  • PROJ.4 库和 OSGB36

    一切顺利 我正在尝试使用 proj 4 库将纬度 经度坐标转换为 OSGB36 x 和 y 还有其他人成功地做到了这一点吗 我需要填充 srcPrj4String 和 destPrj4String 变量 例如 字符串 srcPrj4Stri
  • jQuery 可移动模态对话框

    我一直在寻找可拖动模式框的所有可用 jQuery 插件 唯一的问题是我发现的每个可拖动的模式框都需要标题栏 有谁知道有什么 jQuery 插件可以让我创建一个没有标题栏的可拖动模式框吗 在这种情况下 您可以通过框的边框拖动它 有什么方法可以
  • 无法访问 attr_accessor 定义的变量

    我正在使用 Thinking Sphinx 来运行搜索 并且我得到了适当的 ActiveRecord 模型 问题是 我想在每个模型上创建适当的链接路径和文本 然后通过 AJAX 将信息以 JSON 形式发送到浏览器 我使用以下内容来构建这些
  • 如何限制cakephp中的分页

    如何限制 cakephp 中的分页 假设我有 400 条记录 我只需要获取从第50条记录到第75条记录的25条记录 每页需要显示5条记录 我如何在分页中做到这一点 示例代码 this gt paginate array contain gt
  • Google App Engine Node.js 应用程序不健康

    我正在尝试在谷歌应用程序引擎上测试一个相当简单的node js应用程序 如下所示 它要做的就是监听 Firebase 数据库中的更改 然后向用户发送 GCM 消息 var Firebase require firebase var gcm
  • Apache HTTP BasicScheme.authenticate 已弃用?

    在 Apache HTTP Component 4 类 org apache http impl auth BasicScheme 中 我注意到该方法 public static Header authenticate final Cred
  • 动画边距/厚度

    我只是以为我已经知道 WPF 和 XAML 语法是如何工作的 呜呜 我收到消息 WithEvents variables can only be typed as classes interfaces or type parameters
  • 我可以在类外部初始化“constexpr static”成员吗?

    我正在使用可变宽度通信格式 处理它的结构看起来像这样 struct Header int msgType 1 len Header len sizeof this struct A public Header int x char y A
  • 每次更改 Rails 代码时都必须重新启动 Apache

    我正在使用 Apache 和 Passenger 运行 Rails 3 自从我从 Mongrel 切换到 Passenger 后 我发现每次更改代码时都必须重新启动 Apache 这是预期的行为吗 在开发中使用 Mongrel 是避免这个问
  • SwiftUI 将 TupleView 转换为 AnyView 数组

    Code 我有以下代码 struct CustomTabView View where Content View let children AnyView init ViewBuilder content escaping gt Conte
  • PyPlot 将替代 y 轴移动到背景

    在 pyplot 中 您可以使用以下命令更改不同图形的顺序zorder选项或通过更改顺序plot 命令 但是 当您通过添加替代轴时ax2 twinx 新轴将始终覆盖旧轴 如文档 是否可以更改轴的顺序以将替代 孪生 y 轴移动到背景 在下面的
  • “视觉继承”的现状如何

    我们有一个应用程序 它必须灵活地向用户显示其主表单 根据用户的不同 表单应该略有不同 也许这里或那里有一个额外的按钮 或者其他一些细微差别 为了停止编写代码来显式删除或添加控件等 我转向视觉继承来解决问题 在我认为是一种整洁 干净和逻辑的
  • 有没有办法在Python中创建类属性?

    由于某种原因 以下内容不起作用 gt gt gt class foo object property classmethod def bar cls return asdf gt gt gt foo bar