在python中,请教参数和函数之间的语法传递关系和程序执行过程解释

问题遇到的现象和发生背景

在python中,参数func写成函数调用的样子func()什么意思,执行了什么操作获得了什么结果,这种用法在语法上叫什么,return返回函数名称wrapper,是什么意思,这样的引用合法吗,返回的结果是什么,eat函数作为参数传递给log函数后是怎样执行程序的,请教下列程序中函数和参数之间的传递关系,以及程序的执行解释。

问题相关代码,请勿粘贴截图
>>> def log(func):
    def wrapper():
        print("开始调用eat()函数")
        func()
        print("结束调用eat()函数")
    return wrapper

>>> def eat():
    print("开始吃了")

    
>>> eat = log(eat)
>>> eat()

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
这个意思看得懂不?
def eat():
    print("haha")
    
x = eat
x()