Python:记住模块函数调用值

时间:2015-07-17 03:02:53

标签: python function module state

我想以我想要的方式运行第三方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)的值,但是如何做到这一点?

1 个答案:

答案 0 :(得分:1)

问题的解决方案是here。您可以为python函数设置内部变量,如下所示:

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