首页 > 解决方案 > python的字符串格式运算符可以应用于类吗?

问题描述

我想知道字符串格式化运算符 ' %' 是否可以应用于 python 中具有子类的类,如下所示:

"I'm %(foo.name)s!" % class

我知道它可以应用于字典,但据我所知,它似乎无法访问多维字典中的值。

标签: pythonstring-formatting

解决方案


你不能这样做% class,但这不应该是麻烦的,因为你通常会想要打印一个类实例。你可以用类实例做你想做的事。给定这个类:

class Foo():
    def __init__(self, name, id):
        self.name = name
        self.id = id

你可以做

>>> foo = Foo("Bar",1)
>>> f"I'm a {foo.name}"
"I'm a Bar"

或者,如果您还没有使用 Python 3.7

>>> "I'm a {.name}".format(foo)
"I'm a Bar"

如果你真的想使用%运营商

>>> "I'm a %(name)s" % vars(foo)
"I'm a Bar"

推荐阅读