关于python函数参数赋初值的问题?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
class TreeNode:
     def __init__(self, val=0, left=None, right=None):  这里的=0, =None意思就是当创建一个对象,默认的初值对吗?
         self.val = val
         self.left = left
         self.right = right
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

就是如果不给初始值, 那么就用等号后面的初始值。
如果建对象时,给了初始值,就用

t1 = TreeNode(val = 10)
t2 = TreeNode(val = 5)
t3 = TreeNode(val = 8 , left = t2 , right = t1)

you got it