使用 str.format() 访问对象属性

2024-03-25

我有一个带有属性的 Python 对象a, b, c.

我仍然使用旧的字符串格式,所以我通常会手动打印这些:

 print 'My object has strings a=%s, b=%s, c=%s' % (obj.a, obj.b, obj.c)

最近,我的字符串变得超长,我更愿意能够简单地将对象传递到字符串格式函数中,例如:

 print 'My object has strings a=%a, b=%b, c=%c'.format(obj)

但是,语法不正确。这可能吗?


您可以使用.attribute_name格式字段本身内的符号:

print 'My object has strings a={0.a}, b={0.b}, c={0.c}'.format(obj)

下面是一个演示:

>>> class Test(object):
...     def __init__(self, a, b, c):
...         self.a = a
...         self.b = b
...         self.c = c
...
>>> obj = Test(1, 2, 3)
>>> 'My object has strings a={0.a}, b={0.b}, c={0.c}'.format(obj)
'My object has strings a=1, b=2, c=3'
>>>

但请注意,执行此操作时,您确实需要对格式字段进行编号。另外,如您所见,str.format函数的格式字段用大括号表示{...},不是% sign.

欲了解更多信息,请参考以下内容格式化字符串语法 https://docs.python.org/2/library/string.html#formatstrings在Python中。

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

使用 str.format() 访问对象属性 的相关文章

随机推荐

  • SQL LIKE 语句。字符串结尾

    我必须选择包含特定文本并以结尾的所有字段 或空格字符或此文本放置在字符串的末尾 所以 我需要这样的东西 select from MyTable Where Column1 like text 此查询工作正常 直到文本未放置在末尾Column
  • 如何使 HIbernate 获取根实体的所有属性并仅获取关联实体的特定属性?

    我有根实体Hostel及其单一关联User owner 当我取东西时Hostel我需要急切地获取实体User owner 但只有owner的 3 个属性 userId firstName lastName 现在我的条件查询是 Criteri
  • 这是有效的 C 代码,但不是有效的 C++ 代码?

    在我正在使用的一些库中 用 C 编写 StorePGM image width height filename char image int width height char filename something something 所有
  • 在 Selenium Python 绑定中设置页面加载超时

    我正在使用带有 Selenium 模块的 Python 编写一个机器人 当我用我的机器人打开一个网页时 由于该网页包含的外部源比 dom 多 所以需要花费很多时间才能加载所有页面 我使用显式和隐式等待来消除这个问题 因为我只想加载特定元素而
  • Spring获取ServletContext并将其作为Bean提供

    I want to get the ServletContext in a Java Spring Webproject and use it to get the absolute path of my web application p
  • 如何从 AWS AppStream 中获取当前用户?

    我正在通过 AWS AppStream 对应用程序的部署进行原型设计 对流的访问通过 Web 门户 使用 SAML 进行管理 我的应用程序需要知道用户的身份 我可以提示他们 但我不想让他们同时登录门户和应用程序 我想获取他们在门户网站上提供
  • 如何获取雪花中表的上次访问时间戳?

    我想获取雪花中表的上次访问时间戳 并不总是理想的 但对于一次性问题找到此问题的一种快速方法是使用 QUERY HISTORY SELECT START TIME FROM TABLE INFORMATION SCHEMA QUERY HIS
  • Presto 中包含 ' ' 字符的键的 JSON_EXTRACT 问题

    我正在使用 Presto 0 163 来查询数据 并尝试从 json 中提取字段 我有一个如下所示的 json 它出现在 style attributes 列中 attributes Brand Fit Name Regular Fit F
  • AndroidManifest.xml 中的属性 application@allowBackup value=(false) 也存在于 [:barcodescanner:] AndroidManifest.xml value=(true)

    我尝试将 ionic 3 应用程序清单中的 allowedBackup 属性设置为 false 但 gradle 抱怨以下错误 AndroidManifest xml 4 18 45 中的属性 application allowBackup
  • iOS 7 图标文件名

    如何命名 Xcode 5 的图标文件 它总是给出错误 说明应用程序不在顶层 这真的很令人沮丧 有人可以给我每个分辨率都必须使用的文件名吗 ios 7 兼容应用程序的图标文件名和大小如下 iPhone 图标 png 57 57 电子邮件受保护
  • Amazon AWS Cognito 和 Python Boto3 建立 AWS 连接并将文件上传到 Bucket

    我正在尝试使用 AWS cognito 服务来验证和上传文件 我已获得了 RegionType identityPool AWS 账户 ID 和 UnAuthRole 我还知道生产和开发桶的名称 我想我正在设置 AWS 访问密钥和 AWS
  • PHP 延迟 10 分钟后执行代码

    我需要在事件 表单提交 后延迟 10 分钟执行 PHP 中的某些代码 例如 发送电子邮件 实现这一目标的最佳方法是什么 我唯一的选择是每分钟运行一次 Cronjob 吗 这对于共享主机实用吗 使用 cronjobs 是最好的方法 如果您无法
  • android 地图异步加载覆盖项

    我有一个地图视图 其中包含我想要加载的数千个项目 显然 在创建视图时我无法加载它们 我想我必须根据当前显示的内容异步加载它们 如何仅加载屏幕上显示的地图部分中的项目 使用 AsyncTask 加载每个屏幕的各个层 使用 MapView ap
  • latin-1 转 ascii

    我有一个带有重音拉丁字符的 unicode 字符串 例如 n unicode Wikip dia le projet d encyclop die utf 8 我想将其转换为普通的 ascii 即 Wikipedia le projet d
  • R 将列表列表转换为数据帧

    我需要处理受密码保护的 Excel xlsx 工作簿中提供的数据 出于法律原因 我无法创建不受保护的 Excel 文件或 csv 文件等并从那里进行处理 所有 Excel 导入包都无法处理受密码保护的工作簿 从这个答案将受密码保护的 xls
  • 双型比较器

    我编写了以下代码 public class NewClass2 implements Comparator
  • 如何在android项目中安装openssl.so和libssl.so?

    我目前面临 openssl 的构建问题 我首先建造了libssl so and libcrypto so与 ndk build 守护者项目共享库 第二步 我通过执行以下操作将库与我的 Android 项目集成 如本中所述topic http
  • 在 javascript 中模拟打字的外观,而不是实际的按键

    我正在尝试编写一个简单的函数 让它看起来好像有人正在输入textarea 这是我的函数 如果它很糟糕 请原谅我 但我通常不使用 javascript 这console log 部分工作正常 但由于某种原因我无法让这个脚本按照我期望的方式更新
  • 转义并在邮件客户端中显示(mailto 链接)

    我有一个像这样的 JavaScript 函数 var strBody encodeURI window location href var strSubject encodeURI document title var mailto lin
  • 使用 str.format() 访问对象属性

    我有一个带有属性的 Python 对象a b c 我仍然使用旧的字符串格式 所以我通常会手动打印这些 print My object has strings a s b s c s obj a obj b obj c 最近 我的字符串变得超