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

时间:2018-08-20 23:36:48

标签: python

这是使用“自我”的最小示例代码

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'来使用唯一的初始化器分隔对象的实例,但是在这种情况下,如何使用它来防止在声明函数或方法之前调用它而导致的错误。

1 个答案:

答案 0 :(得分:1)

当您在类主体中定义方法时,该方法可能是

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

在您的情况下,helper()方法与这些类别之一不匹配。问题不是声明的顺序,而是语法本身