分享

Python 3.7 即将发布,引入多项新功能!

 silence_33 2018-04-22

Python 3.7 将于今年夏天发布,先来窥探一些新功能。

Python 3.7 中有许多新东西:

  • 各种字符集的改进

  • 对注释的推迟评估

  • 以及对 dataclass 的支持

什么是数据类

大多数 Python 开发人员将编写很多类,如下所示:

class MyClass: def __init__(self, var_a, var_b): self.var_a = var_a self.var_b = var_b

数据类通过自动生成 dunder 方法来。例如,一个 __init__ 接受这些参数并将其分配给自己。之前的小例子可以重写为:

@dataclassclass MyClass: var_a: str var_b: str

关键的区别在于类型提示:它们允许你标记某个变量 _should_ 是什么类型。在运行时,不检查这些类型,但可以使用 PyCharm 或类似 mypy 的命令行工具来静态检查代码。

星球大战 API(Star Wars API)

如果有人用星球大战电影的数据创建了 REST API 时,它的粉丝群肯定会兴奋不已。而实际上已经有人这么做了,他不仅创建了 Star Wars API,还为它创建了 Python 封装库。

而我们也可以编写自己的封装(Wrapper)。

我们可以使用请求库从星球大战 API 获取资源:

response = requests.get('https:///api/films/1/')

此端点(与所有 swapi 端点一样)以 JSON 消息进行响应。

dictionary = response.json()

我们在 dictionary 中拥有自己的数据:

{'characters': ['https:///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.\r\n … ','planets': ['https:///api/planets/2/', ...],'producer': 'Gary Kurtz, Rick McCallum','release_date': '1977-05-25','species': ['https:///api/species/5/', ...],'starships': ['https:///api/starships/2/', ...],'title': 'A New Hope','url': 'https:///api/films/1/','vehicles': ['https:///api/vehicles/4/', ...]}

写在最后

前几天有私信小编要Python的学习资料,小编整理了一些有深度的Python教程和参考资料,从入门到高级的都有,文件已经打包好了,正在学习Python的同学可以下载学习学习。文件下载方式:点击小编头像,关注后私信回复“资料”即可下载。首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!重要的事说三遍,哈哈。“编程是门手艺活”。什么意思?得练啊。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多