我正在使用 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
Run Code Online (Sandbox Code Playgroud)
现在,我正在使用这种dump方法,我想print_node用我自己的print_node方法覆盖该函数,因为我想以不同的方式打印它。最好的方法是什么?
您可以自己创建一个继承自预期模块的类,并以任何您想要的方式重写该函数。然后你可以使用你的对象而不是module.py.
class my_class(module):
def __init__(self, *args, **kwargs):
super(my_class, self).__init__(*args, **kwargs)
def dump(self):
# do stuff
Run Code Online (Sandbox Code Playgroud)
正如您在评论中提到的,如果您的模块包含一堆函数,您最好在当前模块中定义新函数。然后您可以将其分配给该函数名称。
正如@Joran Beasley 也提到的,你可以执行以下操作
import my_file
my_file.dump = my_local_dump_fn
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10139 次 |
| 最近记录: |