python作业

  1. **函数级的封装**:

```python

import random

def generate_random_data(data_structure):

if isinstance(data_structure, int):

return random.randint(0, data_structure)

elif isinstance(data_structure, float):

return random.uniform(0, data_structure)

elif isinstance(data_structure, list):

return generate_random_data(item) for item in data_structure

elif isinstance(data_structure, dict):

return {key: generate_random_data(value) for key, value in data_structure.items()}

else:

return None

使用修饰器进行扩展功能

def add_prefix(func):

def wrapper(*args, **kwargs):

result = func(*args, **kwargs)

return f"Random Data: {result}"

return wrapper

@add_prefix

def generate_random_data_wrapper(data_structure):

return generate_random_data(data_structure)

测试函数

data_structure = 1, 2, {'a': 3, 'b': \[4, 5}, 6]

random_data = generate_random_data_wrapper(data_structure)

print(random_data)

```

  1. **类的封装**:

```python

import random

class RandomDataGenerator:

def init(self):

pass

def generate_random_data(self, data_structure):

if isinstance(data_structure, int):

return random.randint(0, data_structure)

elif isinstance(data_structure, float):

return random.uniform(0, data_structure)

elif isinstance(data_structure, list):

return self.generate_random_data(item) for item in data_structure

elif isinstance(data_structure, dict):

return {key: self.generate_random_data(value) for key, value in data_structure.items()}

else:

return None

使用迭代器进行数据生成

def generator(self, data_structure):

if isinstance(data_structure, (list, dict)):

for item in data_structure:

yield self.generate_random_data(item)

测试类

data_structure = {'a': 1, 'b': 2, 3}

generator = RandomDataGenerator()

random_data = generator.generate_random_data(data_structure)

print(random_data)

测试迭代器

for data in generator.generator(data_structure):

print(data)

```

  1. **包的封装**:

添加一个名为`random_generator`的包,结构如下:

```

random_generator/

init.py

core.py

decorators.py

generators.py

```

`core.py`文件:

```python

import random

def generate_random_data(data_structure):

if isinstance(data_structure, int):

return random.randint(0, data_structure)

elif isinstance(data_structure, float):

return random.uniform(0, data_structure)

elif isinstance(data_structure, list):

return generate_random_data(item) for item in data_structure

elif isinstance(data_structure, dict):

return {key: generate_random_data(value) for key, value in data_structure.items()}

else:

return None

```

`generators.py`文件:

```python

from .core import generate_random_data

class RandomDataGenerator:

def init(self):

pass

def generate_random_data(self, data_structure):

return generate_random_data(data_structure)

def generator(self, data_structure):

if isinstance(data_structure, (list, dict)):

for item in data_structure:

yield generate_random_data(item)

```

`decorators.py`文件:

```python

def add_prefix(func):

def wrapper(*args, **kwargs):

result = func(*args, **kwargs)

return f"Random Data: {result}"

return wrapper

```

`init.py`文件:

```python

from .core import generate_random_data

from .generators import RandomDataGenerator

from .decorators import add_prefix

```

在包外调用:

```python

from random_generator import generate_random_data, RandomDataGenerator, add_prefix

data_structure = {'a': 1, 2, 'b': {'c': 3, 'd': 4}}

random_data = generate_random_data(data_structure)

print(random_data)

generator = RandomDataGenerator()

for data in generator.generator(data_structure):

print(data)

@add_prefix

def generate_random_data_with_prefix(data_structure):

return generate_random_data(data_structure)

random_data_prefixed = generate_random_data_with_prefix(data_structure)

print(random_data_prefixed)

相关推荐
wno70411 分钟前
Spring Security权限控制
java·python·spring
ShineWinsu43 分钟前
对于Coze—AI:SDK的解析
人工智能·python·ai·sdk·项目·coze·字节跳动
右耳朵猫AI1 小时前
Python周刊2026W38 | 标准流编码修复、PEP 845/846 草案、解析器提速 10%、集合字典二次复杂度
python·ai·数据科学
微软技术分享1 小时前
大模型网络结构:模型接口测试用例参考
python
Bruce_Liuxiaowei2 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
做运维的阿瑞2 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
why-geo3 小时前
Hermes Agent 与 Python 的会产生什么样的碰撞
人工智能·python·ai编程
正经教主3 小时前
【FDE系列】阶段2:Day 29:FastAPI 进阶 — Pydantic 模型与完整 CRUD 实战
人工智能·python·fde
gCode Teacher 格码致知3 小时前
Pandas教学-6:coerce详解
python·pandas
梦在远山后3 小时前
Electron 与 FastAPI 如何完成流式 Agent 对话
python·langchain·agent