【发布时间】:2015-08-23 05:00:57
【问题描述】:
我知道你不应该在程序中使用变量名,但我使用的只是为了调试目的,并希望将变量名传达给用户以提高可读性。
我有一个这样的文件:
class MyClass(object):
def __init__(self):
pass
def foo(msg=""):
debug("Called from the %s instance.") #quazi-print function that only prints when a DEBUG variable is True.
print(msg)
m = MyClass()
m.foo("Test")
我想从类本身中检索m 实例变量名称。虽然这只是一个示例文件,但我使用它来向用户传达已在实例变量中的某个属性处创建了一个原始套接字,并希望显示它在哪里(即New socket at m.socket)
这对 Python 可行吗?
【问题讨论】:
-
即使出于调试目的,如果用户对对象有多个引用,也会感到困惑。最好有一个明确的名称(可能由用户在为特定对象打开调试时指定)。
-
这有点可行,但您必须搜索所有可能已定义
m的命名空间,以查找它的绑定。 -
print(MyClass())中的实例名称是什么 -
这已经很晚了,但我刚刚从谷歌上看到了这个:这实际上是 not 重复的,因为上面提到的答案返回了 class(这里是
"MyClass")。我们在这里寻找的是 variable 的名称,它指的是类的特定实例(这里:'m')。任何人都可以删除“重复”标记?任何人都知道答案(还没有找到)。
标签: python class instance instance-variables