如何在 python 中的字符串内调用正在格式化的项目的方法?

发布于 2025-01-19 06:22:34 字数 290 浏览 0 评论 0原文

'abcde'.lower()工作正常,返回'abcde'

那么,为什么我不能这样做:'{0.lower()}'。格式('abcde')

它返回以下错误:attributeError:'str'对象没有属性'lower()'

我的猜测是,代码算出属性是整个字符串'lower()'',而不是'lower',它只是行不通的。那么我该如何以这种方式调用一种方法呢?

'aBcDe'.lower() works fine and returns 'abcde'.

So why can't I do this : '{0.lower()}'.format('aBcDe') ?

It returns the following error: AttributeError: 'str' object has no attribute 'lower()'

My guess is that the code figures out that the attribute is the entire string 'lower()', instead of 'lower' and it just doesn't work. So how can I call a method in this fashion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

此岸叶落 2025-01-26 06:22:34

你说得对; Python认为.lower()是字符串'abcde'的属性。您可以通过将调用转到.lower().format()

'{0}'.format('aBcDe'.lower())

You're right; Python thinks that .lower() is an attribute of the string 'aBcDe'. You can fix this by moving the call to .lower() to the parameter to .format():

'{0}'.format('aBcDe'.lower())
黎夕旧梦 2025-01-26 06:22:34

使用格式方法,您不能将要评估的内容放入卷曲括号内。以下是两种(围绕此方法):

'{0}'.format('aBcDe'.lower())

或使用F弦:

f"{'aBcDe'.lower()}"

With the format method, you can't put something you want to evaluate inside the curly braces. Here are two (of several ways around this):

'{0}'.format('aBcDe'.lower())

or use an f-string:

f"{'aBcDe'.lower()}"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文