【问题标题】:Use method within class to define a global variable使用类中的方法来定义一个全局变量
【发布时间】:2018-12-08 02:06:36
【问题描述】:
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”参数传递什么?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

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

    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() 示例中实例化该类
    • 如果您只想直接调用该方法,您可以删除 self 并将其设为 D = Foo.sub() 示例中的静态方法。
    • 如果你想在类中调用add,你需要调用self.add

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 2023-03-18
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多