通过注解调用方法
Call method by annotation
给出下面的代码
class Test:
def method(self, name):
if name == 'a':
return __method_a()
if name == 'b':
return __method_b()
def __method_a(self):
print('a')
def __method_b(self):
print('b')
...
有没有办法做一些“更好”的事情,例如使用注释?
class Test:
def method(self, name: str):
return self.call_by_annot(name)
@a
def __method_a(self):
print('a')
@b
def __method_b(self):
print('b')
...
如果没有,这是删除此类 if
列表的好方法?
你可以这样做:
class Test:
def method(self,name):
return getattr(self,f"__method_{name}")()
def __method_a():...
def __method_b():...
给出下面的代码
class Test:
def method(self, name):
if name == 'a':
return __method_a()
if name == 'b':
return __method_b()
def __method_a(self):
print('a')
def __method_b(self):
print('b')
...
有没有办法做一些“更好”的事情,例如使用注释?
class Test:
def method(self, name: str):
return self.call_by_annot(name)
@a
def __method_a(self):
print('a')
@b
def __method_b(self):
print('b')
...
如果没有,这是删除此类 if
列表的好方法?
你可以这样做:
class Test:
def method(self,name):
return getattr(self,f"__method_{name}")()
def __method_a():...
def __method_b():...