Python 如何获取函数';谁的名字是字符串?
在Python中,如何将函数名作为字符串获取 我想以字符串形式获取Python 如何获取函数';谁的名字是字符串?,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,在Python中,如何将函数名作为字符串获取 我想以字符串形式获取str.capitalize()函数的名称。该函数似乎具有\uuuu name\uuuu属性。当我这样做的时候 print str.__name__ 我得到了这个输出,正如预期的那样: str 但是当我运行str.capitalize()。\uuuu name\uuuu时,我得到的是一个错误,而不是名称“capitalize” 给出此错误: Traceback (most recent call last): File "
str.capitalize()
函数的名称。该函数似乎具有\uuuu name\uuuu
属性。当我这样做的时候
print str.__name__
我得到了这个输出,正如预期的那样:
str
但是当我运行str.capitalize()。\uuuu name\uuuu
时,我得到的是一个错误,而不是名称“capitalize”
给出此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute '__name__'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:'str'对象没有属性'\u\u name\u'
出了什么问题?
问候语。大写是一个函数对象,该对象有一个可以访问的\uuuuu name\uuuuuuuu
属性。但是greeting.capitalize()
调用函数对象并返回greeting
字符串的大写版本,并且该字符串对象没有名称属性。(但即使它确实有一个。\uuuuuu name\uuuuuuu
,它也是字符串的名称,而不是用于创建字符串的函数的名称)。您不能执行str.capitalize()
,因为当您调用“raw”str.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
所以你需要这样做
print str.capitalize.__name__
或
让我们从错误开始
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“str”对象没有属性“名称”
具体的
AttributeError:“str”对象没有属性“名称”
你在努力
greeting = 'hello, world'
print greeting.capitalize().__name__
它将大写hello world
,并将其作为字符串返回
正如错误所述,string
没有属性\u name\u
capitalize()
将立即执行函数并使用结果,而capitalize
将表示函数
如果您希望看到JavaScript中的解决方法
检查下面的代码片段
函数abc(){
返回“你好世界”;
}
控制台日志(abc类型)//功能
log(类型为abc())代码>您不需要调用此函数,只需使用名称
>>> str.capitalize.__name__
str.capitalize.\uuuu name.\uuuuu
或greeting.capitalize.\uuuu name.\uuuuu
有什么问题?返回错误请确保在该语句greeting.capitalize中没有在大写后添加括号。capitalize
是一个函数对象,该对象具有可访问的\uu name.\uuu
属性。但是greeting.capitalize()
调用函数对象并返回greeting
字符串的大写版本,并且该字符串对象没有名称属性。(但即使它确实有一个。\uuuuuu name\uuuuuuu
,它也是字符串的名称,而不是用于创建字符串的函数的名称)。您不能执行str.capitalize()
,因为当您调用“raw”str.capitalize
函数时,您需要向它传递一个字符串参数以进行大写。将函数名作为字符串获取的目的是什么?你会怎么处理这个名字?
greeting = 'hello, world'
print greeting.capitalize().__name__
>>> str.capitalize.__name__