不确定这是一个有效的问题还是胡说八道,但我没有在线找到答案。
我知道可以用以下方式在Python中重命名函数:
SuperMethod = myObject.SuperMethod
我想知道是否可以重命名对象的每个方法,仅此而已,就能够调用特定对象的每个方法而无需明确告知其名称(类似于在VBA中使用with
条款)
我知道这会遇到各种各样的命名问题。
答案 0 :(得分:1)
在过滤掉以globals()
开头和结尾的内部方法之后,可以使用对象的可调用对象来更新'__'
字典:
class A:
def __init__(self, i):
self.i = i
def x(self):
print(self.i + 1)
def y(self):
print(self.i + 2)
myObject = A(1)
globals().update({k: getattr(myObject, k) for k, v in A.__dict__.items() if not k.startswith('__') and not k.endswith('__') and callable(v)})
x()
y()
这将输出:
2
3