Pythonの階乗と再帰関数

そもそも再帰関数をちゃんと理解してなかったから階乗のPythonコードもCでもわからなかったけど、ようやく理解したっぽいかな。
//----
factorial.py
def factorial(x):     //xが3の場合
    if x == 0:           //ここが0になるまでfactorial(x-1)を呼び出し続ける
//x==0になったらその関数時点からx * returnの計算開始
        return 1
    else:
        return x * factorial(x - 1)
//