f"Method {self.func.__name__} executed in {execution_time:.4f} seconds."
时间: 2024-03-26 13:37:55 浏览: 20
这段代码使用了 f-string 格式化输出,其中:
- `{self.func.__name__}` 表示被装饰的函数的名字。
- `{execution_time:.4f}` 表示执行时间,使用浮点数格式化输出,保留 4 位小数。
所以这段代码的输出格式为:"Method 函数名 executed in 执行时间 seconds."。其中,函数名和执行时间会被实际的函数名和执行时间替换。
相关问题
编写一个类装饰器,用于计算被装饰函数的执行时间。 class MeasureTime: def __init__(self, func): self.func = func def __call__(self, *args, **kwargs): start_time = time.time() result = self.func(*args, **kwargs) end_time = time.time() execution_time = end_time - start_time print(f"Method {self.func.__name__} executed in {execution_time:.4f} seconds.") return result
非常好的问题!你的问题提供了一个很好的示例,可以向其他人展示如何编写类装饰器。下面是一个示例代码,演示了如何使用类装饰器来测量函数的执行时间:
```
import time
class MeasureTime:
def __init__(self, func):
self.func = func
def __call__(self, *args, **kwargs):
start_time = time.time()
result = self.func(*args, **kwargs)
end_time = time.time()
execution_time = end_time - start_time
print(f"Method {self.func.__name__} executed in {execution_time:.4f} seconds.")
return result
@MeasureTime
def my_function():
time.sleep(1)
my_function()
```
在这个例子中,我们定义了一个名为`MeasureTime`的装饰器类,它采用一个函数作为其唯一参数。在`__call__`方法中,我们记录了函数执行的开始时间和结束时间,并计算了函数的执行时间。最后,我们打印出函数的名称和执行时间,并返回函数的结果。
在我们的示例中,我们使用`@MeasureTime`语法将`MeasureTime`类应用于`my_function`函数。这意味着当我们调用`my_function`时,实际上会调用`MeasureTime`的`__call__`方法,该方法会测量函数的执行时间并打印出结果。
希望这个示例可以帮助你理解类装饰器的工作原理!
func.__name__
func.__name__ 是 Python 中的一个内置属性,用于获取函数对象的名称。它返回一个字符串,表示函数的名称。例如,如果有一个函数定义如下:
```python
def my_function():
pass
```
那么 `my_function.__name__` 的值将是字符串 "my_function"。这个属性通常用于打印函数的名称或者在其他函数中进行比较和判断。