这是使用“自我”的最小示例代码
class Solution2:
def inorderTraversal(self, a):
"""
:type root: TreeNode
:rtype: List[int]
"""
b = self.helper(a)
return b
def helper(self, a):
return a
sol2 = Solution2()
e = sol2.inorderTraversal(7)
print(e)
#output
>7
这是不使用自我的最小示例代码
class Solution:
def inorderTraversal(self, a):
"""
:type root: TreeNode
:rtype: List[int]
"""
b = helper(a)
return b
def helper( a):
return a
sol = Solution()
d = sol.inorderTraversal(7)
print(d)
给出错误的地方
NameError: name 'helper' is not defined
我知道python中使用'self'来使用唯一的初始化器分隔对象的实例,但是在这种情况下,如何使用它来防止在声明函数或方法之前调用它而导致的错误。
答案 0 :(得分:1)
当您在类主体中定义方法时,该方法可能是
self
作为第一个参数)@staticmethod
装饰器声明)@classmethod
装饰器声明)在您的情况下,helper()
方法与这些类别之一不匹配。问题不是声明的顺序,而是语法本身