【问题标题】:Accessing global variables from inside python functions从 python 函数内部访问全局变量
【发布时间】:2019-06-04 23:29:45
【问题描述】:

我正在尝试从 calc 函数内部更新变量一或二,然后在 rob 函数中打印它。但是每当我这样做时,它都会恢复为零,这会导致问题

使用提到的全局关键字Using global variables in a functioncan't access global variable from inside a function in python,但这似乎不起作用

class Solution(object):
    one=0
    two= 0
    def calc(self,root,flag):
        global one
        global two
        if root == None:
            return
        if flag:
            self.one+=root.val
            Solution().calc(root.left,False)
            Solution().calc(root.right, False)
        else :
            self.two+=root.val
            Solution().calc(root.left, True)
            Solution().calc(root.right, True)
        print (str(root.val)+" " + str(self.one) + " " + str(self.two))
    def rob(self, root):
        self.calc(root,True)
        global one
        global two        
        print self.one
        print self.two
        return max(self.one,self.two)

它基本上总是将一和二归零

【问题讨论】:

  • 你为什么使用一个没有我们任何内部状态的类并试图使用全局变量?这违背了课程的全部目的

标签: python class global-variables


【解决方案1】:

如果没有root 的定义和给出错误答案的示例代码调用,就很难回答您的问题。也就是说,我认为问题在于您将root.val 分配给Solution 属性而不是增加全局变量:

# You have:
self.one += root.val
# You want:
one += root.val

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2022-08-02
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多