在类主体中重命名方法
在Python中,可以给方法改个名字吗?
class Validation(unittest.TestCase):
def __init__(self, methodName='runTest'):
super(Validation, self).__init__(methodName)
#Doesn't work
setattr(self,'do_folders_equal','test_do_folders_equal')
比如把方法 'do_folders_equal' 改成 'test_do_folders_equal'。上面的用法显然是不对的……那要怎么做这个操作呢?
1 个回答
3
你不需要重命名它,只需要把它赋值给另一个变量就可以了:
class Validation(unittest.TestCase):
def __init__(self, methodName='runTest'):
super(Validation, self).__init__(methodName)
self.test_do_folders_equal = self.do_folders_equal
不过,有时候在继承的方法之间可能会出现一些奇怪的互动,所以这要看你具体想做什么。我也不太确定在旧式类中这个行为是怎样的……
补充:或者使用在运行时读取的名称:
class Validation(unittest.TestCase):
def __init__(self, methodName='runTest'):
super(Validation, self).__init__(methodName)
setattr(self, 'test_do_folders_equal', getattr(self, 'do_folders_equal'))