Python 3.7 將于今年夏天發(fā)布疲眷,先來窺探一些新功能。
Python 3.7 中有許多新東西:
各種字符集的改進
對注釋的推遲評估
以及對 dataclass 的支持
▌什么是數(shù)據(jù)類
大多數(shù) Python 開發(fā)人員將編寫很多類您朽,如下所示:
class MyClass: def __init__(self, var_a, var_b): self.var_a = var_a self.var_b = var_b
數(shù)據(jù)類通過自動生成 dunder 方法來狂丝。例如,一個 __init__ 接受這些參數(shù)并將其分配給自己哗总。之前的小例子可以重寫為:
@dataclassclass MyClass: var_a: str var_b: str
關(guān)鍵的區(qū)別在于類型提示:它們允許你標(biāo)記某個變量 _should_ 是什么類型几颜。在運行時,不檢查這些類型讯屈,但可以使用 PyCharm 或類似 mypy 的命令行工具來靜態(tài)檢查代碼蛋哭。
▌星球大戰(zhàn) API(Star Wars API)
如果有人用星球大戰(zhàn)電影的數(shù)據(jù)創(chuàng)建了 REST API 時,它的粉絲群肯定會興奮不已涮母。而實際上已經(jīng)有人這么做了谆趾,他不僅創(chuàng)建了 Star Wars API,還為它創(chuàng)建了 Python 封裝庫叛本。
而我們也可以編寫自己的封裝(Wrapper)沪蓬。
我們可以使用請求庫從星球大戰(zhàn) API 獲取資源:
response = requests.get('https://swapi.co/api/films/1/')
此端點(與所有 swapi 端點一樣)以 JSON 消息進行響應(yīng)。
dictionary = response.json()
我們在 dictionary 中擁有自己的數(shù)據(jù):
{'characters': ['https://swapi.co/api/people/1/', … ],'created': '2014-12-10T14:23:31.880000Z','director': 'George Lucas','edited': '2015-04-11T09:46:52.774897Z','episode_id': 4,'opening_crawl': 'It is a period of civil war. … ','planets': ['https://swapi.co/api/planets/2/', ...],'producer': 'Gary Kurtz, Rick McCallum','release_date': '1977-05-25','species': ['https://swapi.co/api/species/5/', ...],'starships': ['https://swapi.co/api/starships/2/', ...],'title': 'A New Hope','url': 'https://swapi.co/api/films/1/','vehicles': ['https://swapi.co/api/vehicles/4/', ...]}
寫在最后
在這里還是要推薦下我自己建的Python開發(fā)學(xué)習(xí)群:483546416来候,群里都是學(xué)Python開發(fā)的跷叉,如果你正在學(xué)習(xí)Python ,小編歡迎你加入吠勘,大家都是軟件開發(fā)黨性芬,不定期分享干貨(只有Python軟件開發(fā)相關(guān)的),包括我自己整理的一份2018最新的Python進階資料和高級開發(fā)教程剧防,歡迎進階中和進想深入Python的小伙伴