python中的“self”如何防止在声明函数之前调用函数的问题?

2024-03-28 19:24:47 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个使用“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分隔对象的实例,但是在这种情况下,它被用来防止在声明函数/方法之前调用函数/方法所产生的错误。你知道吗


Tags: 代码selfhelper示例returndeftyperoot
1条回答
网友
1楼 · 发布于 2024-03-28 19:24:47

在类主体中定义方法时,该方法可以是

  • 实例方法(它需要self作为第一个参数)
  • 静态方法(用@staticmethod修饰符声明)
  • 类方法(用@classmethod修饰符声明)

在您的例子中,helper()方法与这些类别之一不匹配。问题不在于声明的顺序,而在于语法本身

相关问题 更多 >