首页 > 编程问答 >具有两个或多个返回参数的函数注释

具有两个或多个返回参数的函数注释

时间:2024-07-27 03:55:28浏览次数:15  
标签:python python-typing

当我为返回一个参数的函数编写注释时,我没有任何问题。

def func() -> str:
    return "ok"

但是,当我编写带有两个或更多参数的注释时,我的 PyCharm 给我 SyntaxError: invalid syntax

def func() -> str, str:
    return "ok - 1", "ok - 2"

我认为参数可以与 tuple 结合使用,但我认为这不是最好的方法。

我的问题是:如何正确注释具有两个或多个返回参数的函数?

请包含一个您的回复中的 PEP 链接(如果有)。我在 PEP 484 PEP 3107 寻找答案,但找不到。


当函数返回多个值时,应该使用括号来创建一个元组,用于注释返回类型:

def func() -> tuple[str, str]:
    return "ok - 1", "ok - 2"

这很清楚地表明该函数返回一个有两个元素的元组,这两个元素都是字符串。虽然 Python 函数在技术上返回多个值时确实返回了一个元组,但使用显式的元组注释可以提高代码清晰度,并帮助类型检查器理解函数的预期输出。

此方法在 PEP 484 - 类型提示 中有描述:https://www.python.org/dev/peps/pep-0484/#tuples-and-lists

虽然也可以返回一个没有括号的普通元组,如 -> str, str ,但这在 PEP 中不推荐这样做,并可能导致类型检查器出现意外问题。使用 tuple[str, str] 语法可以确保与类型提示的最佳兼容性和清晰度。

标签:python,python-typing
From: 56014563

相关文章

  • 使用 Python 构建简单 REST API
    使用Python构建简单RESTAPI1.概述本技术文档旨在指导开发者使用Python框架Flask构建一个基本的RESTAPI。通过学习本指南,您将掌握创建、读取、更新和删除(CRUD)操作的基本知识,并能够使用Python构建自己的API。2.安装依赖首先,您需要确保已安装Python和Flask......
  • Python——Pandas(第二讲)
    文章目录变量类型的转换Pandas支持的数据类型在不同数据类型间转换建立索引新建数据框时建立索引读入数据时建立索引指定某列为索引列将索引还原变量列引用和修改索引引用索引修改索引修改索引名修改索引值更新索引Series的索引和切片DataFrame的索引和切片选择列按......
  • 基于Python+Django的红色文化研学网站设计与实现
    ......
  • 【python】对网站进行请求-初识
    python实现对网站进行请求代码如下importrequestsdefget_data(url,headers=None,params=None,timeout=10):try:res=requests.get(url,headers=headers,params=params,timeout=timeout)res.raise_for_status()returnres.text......
  • 【python】Django初识-从未有如此美妙的开局
    Django初识python、Django安装与验证python安装Python官网https://www.python.org/Django安装pipinstallDjango验证python是否安装成功python--version验证Django是否安装成功python3-mdjango--version创建第一个Django项目项目创建与服务器启动打开cmd,输......
  • Python虚拟环境创建、激活、使用,项目依赖导出、安装requestments.txt
    Python虚拟环境通过命令行终端创建python虚拟环境:新建一个文件夹,可以专门用来存放虚拟环境,这里在D盘创建Python_Virtual_Environment_test文件夹然后在这里输入cmd按回车键进入命令行终端此时打开的位置就是当前的路径,当然也可以 cd一步步进入到目标路径创建环境......
  • 使用 Python 脚本自动生成报告
    使用Python脚本自动生成报告1.简介本文档介绍如何使用Python脚本自动生成报告。此脚本旨在简化报告生成过程,提高效率并减少人为错误。2.需求Python3.6或更高版本Pandas库Matplotlib库3.安装使用pip安装必要的库:pipinstallpandasmatplotlib4.脚本im......
  • 【和为 K 的子数组】python刷题记录
    这就到前缀和了。classSolution:defsubarraySum(self,nums:List[int],k:int)->int:#连续不能sortnum=len(nums)i=0j=i+1sm=0ret=0#j可以=是因为后面切片不包括jwhilej<=num:......
  • 嵌入式Python、ROS、SLAM、WebSocket和Node.js:智能巡逻监控安防机器人设计流程(代码示
    项目概述随着智能技术的发展,智能巡逻机器人在安防、监控和巡逻等领域的应用越来越广泛。本文将介绍一个结合嵌入式系统、机器人技术和后端开发的智能巡逻机器人。该机器人能够自主导航,实时检测异常情况(如火灾或入侵者),并将数据发送到后端服务器,以实现高效的监控和应急响应。主......
  • python和mysql数据库
    pyhton和mysql数据库1.非查询:frompymysqlimportConnection#导入数据库模块pymysql以及Connection对象conn=Connection(#连接数据库  host='127.0.0.1',#ip地址或者是主机名  port=3306,#端口号  user='root',  password='20040130', ) cursor=c......