![](/img/trans.png)
[英]self.variable_name vs variable_name in method inside python class
[英]Get variable's name by 'self' inside of a method of a class in Python
我有以下代码:
class A:
def m(self):
print(...) # 'my_var' should be printed
my_var = A()
my_var.m()
我应该在m
内键入什么代码以输出创建的变量的名称? 我需要针对Python 3的解决方案。
对象在任何给定时间都不知道它们碰巧绑定到什么名称空间变量。 此类变量对对象具有前向引用,但是对象不对潜在多个变量保持后向引用。 导入的模块在sys.modules
中列出,您可以为您的对象扫描这些模块。 这将捕获模块级变量,但不能捕获碰巧也包含该变量的任何容器,类,类实例或局部函数名称空间。
test1.py-实现在已知模块中进行自我扫描的类
import sys
class A:
def m(self):
for name, module in sys.modules.items():
try:
for varname, obj in module.__dict__.items():
if obj is self:
print('{}.{}'.format(name, varname))
except AttributeError:
pass
a = A()
test2.py-测试代码
import test1
my_a = test1.a
my_a.m()
运行代码
$ python3 test2.py
__main__.my_a
test1.a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.