NameError is not defined

LeetCodeを解いてて出てきたエラーです。

下記は適当に書いたものなんですが、insertRowに注目してください。

class Solution:
    def insertRow(self, val: int, depth: int):
        print(val)
        print(depth)

    def addOneRow(self, root: Optional[TreeNode], val: int, depth: int) -> Optional[TreeNode]:
        insertRow(val, depth)    <---- ここ!!
        return root

これを実行してみると

NameError : name "insertRow" is not defined

というエラーがでました。

なんでかなーとすごい悩んだんですが、自分の関数を呼び出すときはselfが必要なんですね。
なので

self.insertRow(val, depth)

で解決しました。

まあそりゃそうだよな...。久しぶりすぎて忘れてた(言い訳)。

stackoverflow.com
まさにこの解答が参考になりました。