【发布时间】:2019-06-04 23:29:45
【问题描述】:
我正在尝试从 calc 函数内部更新变量一或二,然后在 rob 函数中打印它。但是每当我这样做时,它都会恢复为零,这会导致问题
使用提到的全局关键字Using global variables in a function 和can'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