有没有一种方法可以按顺序调用类/对象方法,而不必每次都写“ class.method”或“ object.method”?
For example:
class ClassAWithALongName():
@classmethod
def do_stuff1()
@classmethod
def do_stuff2()
@classmethod
def do_stuff3()
Instead of:
ClassAWithALongName.do_stuff1()
ClassAWithALongName.do_stuff2()
ClassAWithALongName.do_stuff3()
Is there a way to do it like:
ClassAWithALongName{
do_stuff1(),
do_stuff2(),
do_stuff3()}
答案 0 :(得分:0)
一种方法是使其设计流畅,并从每个classmethod
返回类:
class ClassAWithALongName:
@classmethod
def do_stuff_1(cls):
# Do stuffs
return cls
@classmethod
def do_stuff_2(cls):
# Do stuffs
return cls
现在,您可以链接函数调用了:
ClassAWithALongName.do_stuff_1().do_stuff_2()
此设计是否可以满足您的需要,并且您的工作在很大程度上取决于您的代码。
答案 1 :(得分:0)
您可以将功能对象存储在列表中,以便可以遍历列表以调用功能对象:
routine = [
ClassAWithALongName.do_stuff1,
ClassAWithALongName.do_stuff2,
ClassAWithALongName.do_stuff3
]
for func in routine:
func()