(点击上方公众号,可快速关注)


来源:开源中国


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

Python 3.7中有许多新东西:

  • 各种字符集的改进

  • 对注释的推迟评估

  • 以及对dataclass的支持

什么是数据类

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

640?wx_fmt=png&wxfrom=5&wx_lazy=1

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

640?wx_fmt=png&wxfrom=5&wx_lazy=1

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

星球大战 API(Star Wars API)

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

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

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

 
 

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

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

 
 

dictionary = response.json()

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

 
 

{

'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/',

                 ...]

}

更多详细说明请查看完整博客:

  • https://blog.jetbrains.com/pycharm/2018/04/python-37-introducing-data-class/

看完本文有收获?请转发分享给更多人

关注「Python开发者」,提升Python技能

640?wx_fmt=png

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐