一篇文章教会你什么是Python模仿强类型
前言
Hi,各位小伙伴,你们好,今天我们来说一个Python未来趋势的并且一个好玩的东西。
我们可能多多少少都听过一句话,动态一时爽,重构火葬场。从生产角度出发,Python确实是一门很优秀的语言,但是当多人协作时,或者接手别人Python代码时,估计是有些头疼的。
Python虽然生产力高,语法强大,具备动态语言的灵活性,但是也正是因为这样,估计每个人写的代码有很大差别,那有没有什么办法尽可能的避免这种情况呢?
关于这个,Python前辈也发现这个弊病,所以,在Python3.6之后,推出了"Python类型注释"。
来吧,各位,上车吧,我们一起看一下。
环境
Python解释器 3.6+
关于Python版本,尽可能的选择Python3.6+,因为在Python3.6+之后,在Python的异步彻底崛起,虽然目前处于测试阶段,但是我相信,用不了多久,Python一定会更加优秀。
一个简单的例子
def speak(name,age):
print(name,age)
speak("张三","18")
我们可以很清晰的知道,speak函数的name参数,接收的一定是个字符串,并且以后我也希望它接收的一直是字符串,传统的写法如上,当然,现在我也是这么写,毕竟我太赖了。
但是现在有个很简单的需求,我想把name接收的参数都转成大写,so,我们都知道字符串有upper方法。
print("stark".upper())
但是当我们敲“.”符号的时候,有时候可能并不会出现自动提示,但是name确实是字符串。
注:Pycharm可能会提示出来,但是有时候会失败,这要归功于Pycharm强大的提示功能,但并不是万能的,如下图所示。
这很正常,因为Python是动态语言,变量什么类型只有解释到才知道。
我们将代码稍微改一下,如下图所示。
我们在参数后面加上:str,就表示我希望我接收的参数类型是字符串,如果我传的是数字类型,如下图所示。
Pycharm or Vscode出现飘黄警告,如下图所示。
期望的类型'str',得到却是'int'。
并且在敲入点号的时候,只要是主流的编辑器,都会自动提示,如下图所示。
声明简单类型
常用几种
不管是函数参数还是声明变量,都是:类型
更多类型
Lists
Dicts
类
+和不+类型注释的效果
下图是+类型注释的效果:
下图是不+类型注释的效果:
函数
感言
以上只是简单的写了一下入门常用的一些类型注释,个人认为基本够用。
小编相信,有人一定会说,这样写和静态语言有什么区别或者说这样写毕竟累,并且复杂,但是有些付出是必须的,毕竟开发软件不是一个人在开发,并且新库和新项目已经陆陆续续在使用以上方法,相信普及是个时间问题。
类型注释不仅方便自己观看以前的代码,也方便别人阅读自己的代码,小编认为很有必要学习一下。
想学习更多关于Python的知识,可以参考学习网址:http://pdcfighting.com/
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~
本文分享自微信公众号 - Python爬虫与数据挖掘(crawler_python)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
JavaScript 测试系列实战(三):使用 Mock 模拟模块并处理组件交互
在之前的两篇教程中,我们学会了如何去测试最简单的 React 组件。在实际开发中,我们的组件经常需要从外部 API 获取数据,并且组件的交互逻辑也往往更复杂。在这篇教程中,我们将学习如何测试更复杂的组件,包括用 Mock 去编写涉及外部 API 的测试,以及通过 Enzyme 来轻松模拟组件交互 初次尝试 Jest Mock 我们的应用程序通常需要从外部的 API 获取数据。在编写测试时,外部 API 可能由于各种原因而失败。我们希望我们的测试是可靠和独立的,而最常见的解决方案就是 Mock。 改写 TodoList 组件 首先让我们改造组件,使其能够通过 API 获取数据。安装 axios: npminstallaxios 然后改写 TodoList 组件如下: //src/TodoList.jsimportReact,{Component}from'react';importaxiosfrom'axios';importTaskfrom'./Task';constapiUrl='https://api.tuture.co';classToDoListextendsComponent...
-
下一篇
阿里面试官:HashMap 熟悉吧?好的,那就来聊聊 Redis 字典吧!
每天早上七点三十,准时推送干货 最近,阿粉的一个朋友出去面试,回来跟阿粉抱怨,面试官不按套路出牌,直接打乱了他的节奏。 事情是这样的,前面面试问了几个 Java 的相关问题,我朋友回答还不错,接下来面试官就问了一句:看来 Java 基础还不错,Java HashMap 你熟悉吧? 我朋友回答。工作经常用,有看过源码。 我朋友本来想着,你随便来吧,这个问题之前已经准备好了,随便问吧。 谁知道,面试官下面一句: 「那好的,我们来聊聊 Redis 字典吧。」 直接将他整蒙逼。 阿粉的朋友由于没怎么研究过 Redis 字典,所以这题就直接回答不知道了。 「当然,如果面试中真不知道,那就回答不了解,直接下一题,不要乱答。」 不过这一题,阿粉觉得还是很可惜,其实 Redis 字典基本原理与 HashMap 差不多,那我们其实可以套用这其中的原理,不求回答满分,但是怎么也可以得个及格分吧~ 面试过程真要碰到这个问题,我们可以从下面三个方面回答。 数据结构 元素增加过程 扩容 字典数据结构 说起字典,也许大家比较陌生,但是我们都知道 Redis 本身提供 KV 查询的方式,这个 KV 就是其实通过底层...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL数据库在高并发下的优化方案
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker容器配置,解决镜像无法拉取问题