Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取函数';谁的名字是字符串?_Python_Python 2.7_Python 3.x - Fatal编程技术网

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 "

在Python中,如何将函数名作为字符串获取

我想以字符串形式获取
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__