千家信息网

python限定方法参数类型、返回值类型、变量类型等

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"python限定方法参数类型、返回值类型、变量类型等"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年11月02日python限定方法参数类型、返回值类型、变量类型等

本篇内容介绍了"python限定方法参数类型、返回值类型、变量类型等"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

typing模块的作用

自python3.5开始,PEP484为python引入了类型注解(type hints)

  • 类型检查,防止运行时出现参数和返回值类型、变量类型不符合。

  • 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。

  • 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒pycharm目前支持typing检查,参数类型错误会黄色提示

常用类型
  • int,long,float: 整型,长整形,浮点型

  • bool,str: 布尔型,字符串类型

  • List, Tuple, Dict, Set:列表,元组,字典, 集合

  • Iterable,Iterator:可迭代类型,迭代器类型

  • Generator:生成器类型

基本类型指定

示例

def test(a:int, b:str) -> str:    print(a, b)    return 1000if __name__ == '__main__':    test('test', 'abc')

函数test,a:int 指定了输入参数a为int类型,b:str b为str类型,-> str 返回值为srt类型。

可以看到,在方法中,我们最终返回了一个int,此时pycharm就会有警告;
当我们在调用这个方法时,参数a我们输入的是字符串,此时也会有警告;

但非常重要的一点是,pycharm只是提出了警告,但实际上运行是不会报错,毕竟python的本质还是动态语言

复杂的类型标注

示例1

'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''from typing import ListVector = List[float]def scale(scalar: float, vector: Vector) -> Vector:    return [scalar * num for num in vector]# typechecks; a list of floats qualifies as a Vector.new_vector = scale(2.0, [1.0, -4.2, 5.4])

示例2

from typing import Dict, Tuple, SequenceConnectionOptions = Dict[str, str]Address = Tuple[str, int]Server = Tuple[Address, ConnectionOptions]def broadcast_message(message: str, servers: Sequence[Server]) -> None:    ...# The static type checker will treat the previous type signature as# being exactly equivalent to this one.def broadcast_message(    message: str,    servers: Sequence[Tuple[Tuple[str, int], Dict[str, str]]]) -> None:    ...):    ...

这里需要注意,元组这个类型是比较特殊的,因为它是不可变的。
所以,当我们指定Tuple[str, str]时,就只能传入长度为2,并且元组中的所有元素都是str类型

泛型指定

示例

'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''from typing import Sequence, TypeVar, UnionT = TypeVar('T')      # Declare type variabledef first(l: Sequence[T]) -> T:   # Generic function    return l[0]T = TypeVar('T')  # Can be anythingA = TypeVar('A', str, bytes)  # Must be str or bytesA = Union[str, None] # Must be str or None

创建变量时的类型指定

from typing import NamedTupleclass Employee(NamedTuple):    name: str    id: int = 3employee = Employee('Guido')assert employee.id == 3
不足之处

示例

'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''from typing import Listdef test(b: List[int]) -> str:    print(b)    return 'test'if __name__ == '__main__':    test([1, 'a'])

从这个例子可以看出来,虽然我们指定了List[int]即由int组成的列表,但是,实际中,只要这个列表中存在nt(其他的可以为任何类型),就不会出现警告

"python限定方法参数类型、返回值类型、变量类型等"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

类型 参数 学习 示例 变量 方法 不错 志同道合 互帮 互帮互助 学习交流 学习教程 实际 小伙 小伙伴 教程 电子 电子书 视频 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 腾讯阿里互联网科技 互联网科技的 与互联网科技公司 互联网科技公司怎么样 互联网高科技企业 长亮科技 互联网金融 科技伦理 互联网公司 哈尔滨秒房互联网科技有限公司 北京三清互联网科技 银川新华互联网科技职业技术培训学校图片 为客找房互联网科技公司怎么样 怎样加入科技互联网 互联网企业科技类企业如何做账 杭州披云加互联网科技有限公司 互联网科技资金流入 广州梦谷互联网科技有限公司领导 湖北辰鑫科技互联网 山东蛋芒互联网科技有限公司 前海云享互联网科技 互联网科技股 为想互联网科技 浩特互联网科技 科技创新互联网企业 互联网高科技企业 互联网金融科技委员会 南山科技园互联网公司有哪些 全球顶尖互联网科技公司 上海同邻互联网科技有限公司规模 互联网科技企业文化
0