【发布时间】:2018-05-23 06:49:35
【问题描述】:
我尝试获取传递给函数的变量的名称。
class A():
def __init__(self):
self.a = 1
class B():
def __init__(self):
self.b = A()
self.c = A()
def doSomething(self, hello):
print(hello)
B().doSomething(B().b)
<__main__.A object at 0x7f67571a3d68>
我想要的是我可以在函数 B().doSomething() 中确定变量是 b。这可能吗?一个限制是在函数 B().doSomething() 中只传递 B 的实例变量。
例如,在 peewee (https://github.com/coleifer/peewee) 中,python 中的 MySQL ORM,他们构建表达式用于过滤,例如:
B.select().where(B.b == True)
不知何故,他们能够识别出 b 已通过。因为否则无法正确构建查询。
我知道他们在类中使用静态变量,这可能是诀窍吗?
感谢您的帮助! :)
【问题讨论】:
-
问题没有意义。您是否要确定
hello == 'b'是否存在?或者您是否试图确定实际的变量名称?还是您想确定self.b == hello? -
我尝试获取实际的变量名。例如,我也可以通过 B().c 。那我就知道c通过了。
标签: python class variables static instance