我正在研究一个基本上允许方法链接的类,用于为存储的不同字典设置一些属性。
语法如下:
d = Test()
d.connect().setAttrbutes(Message=Blah, Circle=True, Key=True)
但也可能有其他情况,例如:
d = Test()
d.initialise().setAttrbutes(Message=Blah)
现在我相信我可以覆盖“setattrbutes”函数;我只是不想为每个字典创建一个函数。相反,我想捕获前一个链接函数的名称。所以在上面的例子中,我会得到“connect”和“initialise”,这样我就知道在哪个字典里存储它们了。
我希望这是有道理的。任何想法将不胜感激:)
编辑:
这个工作/成为解决上述问题的好方法:
使用方法重载,我可以有以下方法:
def setAttrbutes(self, Name="Foo", Message="", Circle=False):
print "Attrbutes method called for 'Foo'"
def setAttrbutes(self, Name="Boo", Message=""):
print "Attrbutes method called for 'Boo'"
因此,我可以说调用哪个方法取决于使用的名称。例如,在主要情况下,如果我有以下内容:
d.setAttrbutes(Name="Foo", Message="Hello world", Circle=True) # this will call the first
d.setAttrbutes(Name="Boo", Message="Hello world") # this will call the second
这会奏效吗?如果没有,为什么?