Python限定参数类型
Python是动态语言,不像C++和Java等静态语言一样需要定义变量的类型。这使得Python使用起来非常方便,但是有的时候会带来代码理解上的问题,并且由于参数类型不确定,编译器没法很好进行代码补全提示。
使用 参数名:类型 的语法可以在定义类和方法时像静态语言那样指定参数类型,如:
def fun(a: list):return a
这样参数a就被指定为了list类型,编译器会在调用时做类型检查,并且后续代码编写的时候可以提供list类型相关的代码补全提示。
而Python内置的typing库(无需安装)提供了许多更强大的类型指定语法,例如我们希望指定参数的类型为一个list,而list的每一个元素都是一个tuple,使用typing库实现如下:
from typing import Listdef fun(tuples: List[tuple]):for t in tuples:print(len(t))
编译器同样能识别到tuples中的每一个元素都是一个tuple。
另外,如果希望指定参数为多种可能的类型,可以使用Union,实现如下:
from typing import Uniondef fun(a: Union[int, str]):return a
调用时如果类型为int和str都不会有问题,而如果为其他类型就会提示错误。
但是,Python毕竟是动态语言,这么写的目的主要是为了提高代码可读性,并不能真正从语法上禁止调用者传入其他类型参数!
Python限定参数类型相关推荐
- python 函数参数类型检查
在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里. 我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参数有改动,这部分也需要改动. 下面 ...
- python函数参数类型及顺序_python函数参数类型及其顺序
根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...
- python函数参数类型检查_Python中实现参数类型检查的简单方法
Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应.比如,在声明一个函数时,不能指定参数的类型.用C做类比,那就是所有参数都是void*类型!void类型强制转换在C++中被广泛 ...
- python函数参数类型及其顺序
根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...
- [转载] python 函数参数类型检查
参考链接: Python函数参数 在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里. 我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参 ...
- Python函数参数类型*、**的区别
函数接收参数为元组 例如 def myfun(*args): #相当于 def myfun(1,2,3) ==> args 就相当于(1,2,3) for a in args: print(a) ...
- python函数默认参数位置_二十二、Python函数参数类型(位置、关键字、默认、不定长参数)...
调用函数时可使用的参数类型 在调用Python函数时可使用的参数类型主要有以下几种: 必要参数(位置参数) 关键字参数 默认参数 不定长参数 必要参数(位置参数) 在Python中, 必要参数必须以正 ...
- python 函数参数类型判断(判断类型)
方法一 return (type(obj).__name__ == 'dict') 字典:dict 列表:list 集合:set 方法二 if isinstance(path_tmpls, str ...
- Python函数参数的五种类型
之前项目需求,需要通过反射获取函数的参数,python中可以通过函数签名(signature)来实现. 首先需要了解函数参数的类型,Python的参数类型一共有5种:POSITIONAL_OR_KEY ...
最新文章
- Apache用户认证配置文件
- javaBean为什么要实现Serializable接口?
- 获山东科技最高奖-农业大健康·万书波:沉醉谋定花生增产
- mysql统计各年龄段的数量
- Tomcat集群快速入门2
- 支撑阻力指标_使用k表示聚类以创建支撑和阻力
- java xlsx怎么转换成excel格式_python小工具 | Excel的xls和xlsx格式文件转换
- python处理金融数据_python-金融数据处理demo
- 今天while if wlse..
- JS自定义表单提交处理方案
- 用照片进行三维模型重建
- Java计算点的质心_java-矩阵的质心
- QT开发代码格式化设置
- CleanMyMac最新版V4.11.4版MAC电脑系统加速器
- Excel文档误删的4种恢复方法,1秒就可以还原所有内容,你用过吗
- json字符串与python对象互转
- Linux read的用法
- 贝尔实验室的百年沉浮
- 无缝衔接的人会遭报应吗_无缝衔接会有报应吗?
- 修改 ubuntu 镜像源为国内源
热门文章
- VMware该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权........
- Flink SqlServer CDC Listener线程无故消失问题
- Cocos2d-x之3D
- 纯手写原生PHP网站管理后台系统 网站管理系统
- 什么是DNS?DNS有什么作用?
- 解密豌豆荚应用内搜索协议:普适 经济 兼容
- 基于Python实现相机标定正畸并生成鸟瞰图
- 用MATLAB实现plu分解,编制计算给定矩阵 A 的 LU 分解和 PLU 分解的通用程序
- 梦幻西游2开店心得 日赚700万储备金
- word用户名的修改