What does a function followed by (dot) then variable [func.var] means in python?
本问题已经有最佳答案,请猛点这里访问。
下面的代码来自geeks,用于计算二进制树中的最大路径和。
在函数
我在函数内部的sof-if-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Node: def __init__(self, data): self.data = data self.left = None self.right = None def findMaxUtil(root): if root is None: return 0 l = findMaxUtil(root.left) r = findMaxUtil(root.right) max_single = max(max(l, r) + root.data, root.data) max_top = max(max_single, l+r+ root.data) findMaxUtil.res = max(findMaxUtil.res, max_top) return max_single def findMaxSum(root): findMaxUtil.res = float("-inf") ## This line findMaxUtil(root) return findMaxUtil.res ## and this line |
函数是对象。它们可以像其他对象一样具有属性;没有特殊的语法级别含义。
在这种情况下,可能的目的是拥有一些其他语言所称的"静态"变量——一个对函数本身存在全局性的变量,而不是一个单独的调用。
证明即使是一个微不足道的noop函数也可以挂起变量:
1 2 3 4 5 6 | def example(): pass example.foo ="hello" print(example.foo) # prints"hello" |