python好玩复杂的代码
时间: 2024-12-26 20:14:41 浏览: 3
### 复杂的 Python 代码示例
#### 使用装饰器实现函数缓存机制
为了提高性能,可以利用装饰器创建一个简单的函数调用结果缓存系统。这种技术特别适用于计算密集型操作。
```python
from functools import lru_cache
@lru_cache(maxsize=128)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
print([fibonacci(i) for i in range(10)])
```
此段代码展示了如何通过 `functools.lru_cache` 装饰器减少重复计算并加速执行效率[^1]。
#### 动态属性访问与设置
下面的例子说明了怎样使用 getattr 和 setattr 函数动态地获取或修改对象属性:
```python
class DynamicAttributes:
pass
obj = DynamicAttributes()
setattr(obj, 'dynamic_field', "This is a dynamic field.")
value = getattr(obj, 'dynamic_field')
print(value)
```
这段程序体现了 Python 的灵活性,在运行时能够方便地处理未知结构的数据。
#### 利用上下文管理协议简化资源清理工作
当需要确保某些资源被正确释放时(比如文件句柄),可以通过定义实现了特殊方法 __enter__ 和 __exit__ 的类来自动完成这项任务。
```python
class ManagedFile:
def __init__(self, filename):
self.filename = filename
def __enter__(self):
self.file = open(self.filename, 'r')
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
self.file.close()
with ManagedFile('example.txt') as f:
content = f.read()
print(content)
```
上述实例不仅提高了可读性和安全性,还减少了潜在错误的发生几率。
阅读全文