如何在 python 中的字符串内调用正在格式化的项目的方法?
'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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你说得对; Python认为
.lower()
是字符串'abcde'
的属性。您可以通过将调用转到.lower()
到.format()
: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()
:使用
格式
方法,您不能将要评估的内容放入卷曲括号内。以下是两种(围绕此方法):或使用F弦:
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):or use an f-string: