在类中使用方法定义全局变量

时间:2018-06-28 23:02:34

标签: python python-3.x

class Foo:
    def add(self, a, b):
        return (a+b)
    def sub(self, a, b):
        return (a-b)
    C = add(1,2)
  

TypeError:add()缺少1个必需的位置参数:“ b”

如何在该类中使用方法?在类中使用方法定义时,应为“ self”参数传递什么?

1 个答案:

答案 0 :(得分:0)

我不太确定你在说什么。摘要和说明似乎不匹配。不过,我会尽力回答这两个问题。

GLOBAL_VAR = int()

class Foo:
    def add(self, a, b):
        return (a+b)

    @staticmethod
    def sub(a, b):
        return (a - b)

    def call_add(self, *args):
        global GLOBAL_VAR
        GLOBAL_VAR = self.add(*args)

C = Foo().add(1, 2)
D = Foo.sub(1, 2)
Foo().call_add(1, 2)

print(GLOBAL_VAR, C, D)

这样的解释。

  • 如果要在类方法中更新全局变量,则必须使用global关键字将其与方法一起使用
  • 如果要访问类方法,则必须在C = Foo().method()示例中实例化该类
  • 如果只想直接调用该方法,可以在D = Foo.sub()示例中删​​除self并将其设置为静态方法。
  • 如果要调用add,则需要调用self.add

希望有帮助!