python:如何在不更改参数的情况下调用函数?

dws*_*ein 1 python arguments class function

如果我有一个功能:

def foo(self, a, b):
    c = a + b
    return c
Run Code Online (Sandbox Code Playgroud)

如何在不更改函数中的c的情况下调用foo?所以让我说我在另一个函数中调用foo:

def bar(self):
    z = self.foo(2, 4)
    return (z)
Run Code Online (Sandbox Code Playgroud)

然后我想在一个单独的函数中再次调用foo,但是我想要从'bar'调用时间c.

def baz(self):
    self.foo(?, ?) # trying to just get c, without any changes.
Run Code Online (Sandbox Code Playgroud)

基本上,我试图在课堂上保留一个帐户,以便其他班级可以访问同一个帐户; 只是一个简单的平衡,添加和减去钱.

谢谢.

Roh*_*han 5

存储c为类变量或全局变量并覆盖函数以返回旧值.

例如

class SomeClass:
     def foo(self, a=None, b=None):
        if a and b:
            c = a + b
            self.stored_c = c
            return c
        return self.stored_c
Run Code Online (Sandbox Code Playgroud)

注意:您必须处理何时更新stored_c以及任何并发问题.

更新:WRT glglgl的评论,更新了方法重载.