我想以我想要的方式运行第三方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()
现在我的问题是,我怎么能记住value
每次调用module_a.add(value)
thirdparty.py
?
我目前的解决方法是将value
写回do_something()
中的外部文件。但是,我不想要任何外部文件和I / O。另外,我既不能使用module_a.py
中的课程来维护状态,也不能更改add(value)
的签名,否则module_a.add(value)
中的thirdparty.py
将无法正常工作。< / p>
理想情况下,我想编写另一个类来与module_a.py
进行交互,并记住每次传递给add(value)
的值,但是如何做到这一点?
答案 0 :(得分:1)
问题的解决方案是here。您可以为python函数设置内部变量,如下所示:
def add(value):
# code written by me
add.state = add.state+1
do_something()
add.state = 0