Python:记住模块函数调用值

Python: remember module function call values

我想 运行 第三方 python 程序 thirdparty.py 我想要的方式。我不能直接更改 thirdparty.py 的代码,所以我更改了 thirdparty.py 使用的外部模块。 thirdparty.py 的代码如下:

import module_a

def somefunc():
    ...
    module_a.add(value)

所以我创建了自己的 module_a.py 并重写了它的 add(value) 函数:

# module_a.py created by me

def add(value):
    # code written by me
    do_something()

现在我的问题是,每次 thirdparty.py 调用 module_a.add(value) 时,我如何记住 value

我目前的解决方法是将 value 写回 do_something() 中的外部文件。但是,我不想涉及任何外部文件和 I/O。另外,我既不能使用module_a.py中的class来维护状态,也不能更改add(value)中的签名,否则thirdparty.py中的module_a.add(value)将无法工作.

理想情况下我想写另一个 class 来与 module_a.py 交互并记住每次传递给 add(value) 的值,但是如何做到这一点?

你的问题的答案是here。您可以像这样为 python 函数设置内部变量:

def add(value):
    # code written by me
    add.state = add.state+1 
    do_something()
add.state = 0