15260905077 发表于 2023-4-2 19:55:31

倒数第三四行为什么报错啊

import time
def longger(msg):
    def time_master(func):
      def call_func():
            start=time.time()
            func()
            stop=time.time()
            print(f"[{msg}一共耗费了{(stop-start)}:.2f ]")
      return time_master
def funA():
    time.sleep(1)
    print("正在调用funA...")
def funB():
    time.sleep(1)
    print("正在调用funB..")

funA = longger(msg="A")(funA)
funB = longger(msg="B")(funB)
funA()
funB()

isdkz 发表于 2023-4-2 20:02:57

你的代码存在一些错误,我为你修复了这些错误。请参阅以下修复后的代码:

import time

def longger(msg):
    def time_master(func):
      def call_func():
            start = time.time()
            func()
            stop = time.time()
            print(f"[{msg}一共耗费了{(stop - start):.2f}秒]")
      return call_func
    return time_master

def funA():
    time.sleep(1)
    print("正在调用funA...")

def funB():
    time.sleep(1)
    print("正在调用funB..")

funA = longger(msg="A")(funA)
funB = longger(msg="B")(funB)
funA()
funB()


以下是我修改的内容:


[*]在longger函数中,需要在最后添加一行return time_master,以便将内部的time_master函数返回。
[*]在call_func函数中,修复了格式化字符串。我将[{msg}一共耗费了{(stop-start)}:.2f ]修改为[{msg}一共耗费了{(stop - start):.2f}秒],注意冒号的位置。


现在你的代码应该可以正常运行,输出funA和funB的执行时间。

歌者文明清理员 发表于 2023-4-2 21:34:18

isdkz 发表于 2023-4-2 20:02
你的代码存在一些错误,我为你修复了这些错误。请参阅以下修复后的代码:




《应 该》可以正常运行

isdkz 发表于 2023-4-2 21:35:28

歌者文明清理员 发表于 2023-4-2 21:34
《应 该》可以正常运行

{:5_94:}
页: [1]
查看完整版本: 倒数第三四行为什么报错啊