gpt4 book ai didi

python - 如何获取函数的名称作为字符串?

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

在 Python 中,如何获取字符串形式的函数名称?

我想获取字符串形式的 str.capitalize() 函数的名称。该函数似乎具有 __name__ 属性。当我做的时候

print str.__name__

如预期的那样,我得到了这个输出:

str

但是当我运行 str.capitalize().__name__ 时,我得到了一个错误,而不是得到名称“capitalize”。

> Traceback (most recent call last):
> File "string_func.py", line 02, in <module>
> print str.capitalize().__name__
> TypeError: descriptor 'capitalize' of 'str' object needs an argument

同样,

greeting = 'hello, world'
print greeting.capitalize().__name__

给出这个错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute '__name__'

出了什么问题?

最佳答案

greeting.capitalize 是一个函数对象,该对象具有您可以访问的 .__name__ 属性。但是 greeting.capitalize() 调用函数对象并返回 greeting 字符串的大写版本,而该字符串对象没有 .__name__属性。 (但即使它确实有一个 .__name__,它也是字符串的名称,而不是用于创建字符串的函数的名称)。而且您不能执行 str.capitalize(),因为当您调用“原始”str.capitalize 函数时,您需要向它传递一个它可以大写的字符串参数。

所以你需要做

print str.capitalize.__name__

print greeting.capitalize.__name__

关于python - 如何获取函数的名称作为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226573/

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