python
複製程式碼
def my_generator():
yield 1
yield 2
yield 3
for value in my_generator():
print(value)
除了生成器,Python 還支持協程,這讓非阻塞的異步程式更加簡單。Python 3 的 async 和 await 語法提供了一個簡潔的方式來處理並發操作。
python
複製程式碼
import asyncio
async def my_coroutine():
print("Start")
await asyncio.sleep(1)
print("End")
asyncio.run(my_coroutine())
協程和生成器在需要大量 IO 操作(如網絡請求)的場景中非常有用。
python
複製程式碼
with open('file.txt', 'w') as file:
file.write("Hello, World!")
更進一步的,你可以通過實現 enter 和 exit 方法來創建自定義上下文管理器。這在需要管理臨時狀態、鎖、連接等場景中十分有用。
python
複製程式碼
class MyContextManager:
def enter(self):
print("Entering context")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Exiting context")
with MyContextManager():
print("In the context")