我正在使用python库,我需要覆盖其中一个函数。我们称之为 module.py
def dump(nodes, args = 'bleh' ):
...validation checks
for node in nodes:
print(node, someother_args)
def print_node(node, someother_args):
...prints in some way i don't want
现在,我正在使用这个dump方法,我想用自己的print_node方法覆盖print_node函数,因为我想以不同的方式打印它。最好的方法是什么?
答案 0 :(得分:1)
您可以自己创建一个继承自目标模块的类,并以您想要的任何方式覆盖该函数。然后,您可以使用您的对象而不是module.py
。
class my_class(module):
def __init__(self, *args, **kwargs):
super(my_class, self).__init__(*args, **kwargs)
def dump(self):
# do stuff
正如您在评论中提到的,如果您的模块包含许多函数,则最好在当前模块中定义新函数。然后,您可以将其分配给该函数名称。
正如@Joran Beasley所提到的,你可以做类似下面的事情
import my_file
my_file.dump = my_local_dump_fn