在JS中,您可以执行类似的操作,使用obj
将对象/字典的所有键,值this[key] = obj[key]
分配到全局命名空间/上下文obj中。
我希望能够做到这一点
class A:
def call(self):
print('a')
a = A()
globals()['call'] = lambda: None
print(globals())
setattr(globals(), 'call', a.call)
令人困惑的是,即使在打印globals()时明确定义了调用,我得到的错误仍然是AttributeError: 'dict' object has no attribute 'call'
答案 0 :(得分:0)
class A:
def call(self):
print('a')
def call2(self):
print('b')
a = A()
method_names = list(filter(lambda func: '__' not in func, dir(a)))
for func in method_names:
globals()[func] = getattr(a, func)
# globals()['call'] = a.call
print(globals())
call()
call2()
# setattr(globals(), 'call', a.call)
哎呀,当属性和键在JS中是同一件事时,它们混杂在一起。谢谢