gpt4 book ai didi

Python: '{0.lower()}' .format ('A' ) 产生 'str' 对象没有属性 'lower()'

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:03 33 4
gpt4 key购买 nike

在 Python 中,字符串有一个方法 lower():

>>> dir('A')
[... 'ljust', 'lower', 'lstrip', ...]

但是,当尝试 '{0.lower()}'.format('A') 时,响应状态为:

>>> '{0.lower()}'.format('A')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'lower()'

有人能帮我理解为什么上面的行在这种情况下抛出 AttributeError 吗?这似乎不应该是一个 AttributeError,尽管我一定是弄错了。非常欢迎任何有助于理解这一点的帮助!

编辑:我知道我不能在格式调用中调用 lower() 方法(尽管如果可能的话它会很整洁);我的问题是为什么这样做会引发 AttributeError。在这种情况下,此错误似乎具有误导性。

最佳答案

您不能从格式规范中调用方法。格式说明符内的点符号是一种查找属性名称并呈现其值的方法,而不是调用函数。

0.lower() 尝试在字符串上查找名为“lower()”的 literally 属性 - 相当于 getattr(some_string, '降低()')。您需要在格式化之前调用该方法。

>>> '{0.lower()}'.format('A')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'lower()'
>>> '{0}'.format('A'.lower())
'a'

关于Python: '{0.lower()}' .format ('A' ) 产生 'str' 对象没有属性 'lower()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55442532/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com