Python 技巧
Last updated
Jun 15, 2024
# *args, **kwargs
- 这两个是约定俗成的写法, args = arguments, kw = keyword
- 用来传递不固定数量的参数
- args 本质上是一个 tuple, kwargs 是 dist(比如可用 items() 取出内容)
- * 可用作解包
def print_func(x, *args, **kwargs)
也是可以的, 但必须是这个顺序
# 计算执行时间
1
2
3
4
5
6
7
|
# 朴实计时
import time
start = time.time()
# do something
end = time.time()
result = end - start
|
1
2
3
4
|
# timeit函数
import timeit
# statement, setup, repeat time
timeit.timeit('math.sqrt(2)', 'import math', number=100000)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 装饰器
from functools import wraps
import time
def timethis(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
r = func(*args, **kwargs)
end = time.perf_counter()
print("{}.{}: {}".format(func.__module__, func.__name__, end-start))
return r
return wrapper
@timethis
def ts():
math.sqrt(2)
time.sleep(1)
ts()
|