Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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 - Fatal编程技术网

Python 获取对象名和函数名

Python 获取对象名和函数名,python,Python,实际上是两个问题。 1) 是否有一种获取实例类名的通用方法,因此如果我有一个类 class someClass(object): 我想要一个内置的方式,给我一个字符串'someClass' 2) 与函数类似。如果我有 def someFunction(): .... print builtinMethodToGetFunctionNameAsString return 它会打印“someFunction” 我之所以要寻找它,是因为我有一大堆的类和子类,对于调试,我想在

实际上是两个问题。 1) 是否有一种获取实例类名的通用方法,因此如果我有一个类

class someClass(object):
我想要一个内置的方式,给我一个字符串'someClass'

2) 与函数类似。如果我有

def someFunction():
    ....
    print builtinMethodToGetFunctionNameAsString
    return
它会打印“someFunction”

我之所以要寻找它,是因为我有一大堆的类和子类,对于调试,我想在我所在的位置打印出来,所以我只想在所有方法中添加一些东西

print 'Executing %s from %s' %(getFunctionName,getClassName)

因此,我正在寻找一个知道类和函数所在位置的通用命令,这样我就可以在所有方法中复制和粘贴该行,而无需为每个方法编写单独的行

使用
\u name\u
属性:

类别:

>>> class A:pass
>>> A.__name__
'A'
>>> A().__class__.__name__       #using an instance of that class
'A'
功能:

>>> def func():
...     print func.__name__
...     
>>> func.__name__
'func'
>>> func()
func
课程的一个快速技巧是:

>>> import sys
>>> class A():
...     def func(self):
...         func_name = sys._getframe().f_code.co_name
...         class_name = self.__class__.__name__
...         print 'Executing {} from {}'.format(func_name, class_name)
...         
>>> A().func()
Executing func from A

功能部分已在中回答。守则是:

import sys
print sys._getframe().f_code.co_name

对于类部分,请使用:
A.\uuuu name\uuuu
A()。\uuuu class\uuuu.\uu name
(例如)

谢谢Ashwini。对于函数,我正在寻找一种不指定函数而打印名称的方法。编辑了我的问题,以解释我的目的是如何使用调试器?使用.format而不是%'从{}执行{}。format(getFunctionName,getClassName)