iT邦幫忙

2024 iThome 鐵人賽

DAY 0
0
自我挑戰組

Python應用系列 第 8

python 應用 day8

  • 分享至 

  • xImage
  •  
  1. 生成器 (Generators) 和協程 (Coroutines)
    生成器是 Python 中實現惰性求值的方式,可以有效管理記憶體。它通過 yield 關鍵字,讓函數能夠一次返回一個值,而不是生成整個序列。

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 操作(如網絡請求)的場景中非常有用。

  1. Python 的 Context Managers (上下文管理器)
    上下文管理器是 Python 中管理資源的一種方式。最常見的上下文管理器是 with 語句,它能幫助你自動處理資源的釋放,比如文件的打開和關閉。

python
複製程式碼
with open('file.txt', 'w') as file:
file.write("Hello, World!")
更進一步的,你可以通過實現 enterexit 方法來創建自定義上下文管理器。這在需要管理臨時狀態、鎖、連接等場景中十分有用。

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")


上一篇
python 應用 day7
下一篇
python 應用 day9
系列文
Python應用31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言