下面是一个使用“self”的最小示例代码
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
下面是一个不使用self的最小示例代码
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
我知道“self”在python中被用来用唯一的initilizer分隔对象的实例,但是在这种情况下,它被用来防止在声明函数/方法之前调用函数/方法所产生的错误。你知道吗
在类主体中定义方法时,该方法可以是
self
作为第一个参数)@staticmethod
修饰符声明)@classmethod
修饰符声明)在您的例子中,
helper()
方法与这些类别之一不匹配。问题不在于声明的顺序,而在于语法本身相关问题 更多 >
编程相关推荐