随机数生成50个6维向量,并进行封装,做一个修饰器对随机数函数修饰,用修饰器对该随机数生成函数求和或者求均值,求和还是求均值由修饰器的参数决定
时间: 2024-02-09 15:12:01 浏览: 135
好的,我理解了你的问题。首先,我会为你写一个生成随机数的函数,并将其封装成一个返回包含50个6维向量的列表的函数。代码如下:
```python
import random
def generate_random_vectors():
result = []
for i in range(50):
vec = [random.random() for _ in range(6)]
result.append(vec)
return result
```
接下来,我会为你写一个修饰器,该修饰器可以对一个函数求和或求均值。修饰器的参数决定是求和还是求均值。代码如下:
```python
def sum_or_mean(mode):
def decorator(func):
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
if mode == 'sum':
return sum(sum(vec) for vec in result)
elif mode == 'mean':
return sum(sum(vec) for vec in result) / (len(result) * len(result[0]))
return wrapper
return decorator
```
最后,我会将修饰器应用到生成随机数函数上,并演示如何调用修饰后的函数。代码如下:
```python
@sum_or_mean('sum')
def generate_random_vectors():
result = []
for i in range(50):
vec = [random.random() for _ in range(6)]
result.append(vec)
return result
print(generate_random_vectors()) # 输出所有随机向量的元素和
@sum_or_mean('mean')
def generate_random_vectors():
result = []
for i in range(50):
vec = [random.random() for _ in range(6)]
result.append(vec)
return result
print(generate_random_vectors()) # 输出所有随机向量的元素平均值
```
希望能够帮到你!
阅读全文