前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python - 3.8 新特性之仅位置参数 & 仅关键字参数

Python - 3.8 新特性之仅位置参数 & 仅关键字参数

作者头像
小菠萝测试笔记
发布于 2021-08-10 02:49:59
发布于 2021-08-10 02:49:59
90600
代码可运行
举报
运行总次数:0
代码可运行

前置知识

Python 函数:https://cloud.tencent.com/developer/article/1857029

什么是仅限位置形参

  • 仅限位置形参是 Python 3.8 才有的新特性
  • 新增了一个函数形参语法 /
  • 添加了它,表示函数形参只能通过位置参数传递,而不能通过关键字参数形式传递

仅限位置形参栗子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def test1(a, b, c):
    print(a, b, c)


test1(a=1, b=2, c=3)


def test(a, /, b, c):
    print(a, b, c)


# 正确
test(1, b=2, c=3)
test(*(1,), b=2, c=3)

# 错误
test(a=1, b=2, c=3)


1 2 3
1 2 3
1 2 3

    test(a=1, b=2, c=3)
TypeError: test() got some positional-only arguments passed as keyword arguments: 'a'
  • 报错信息:test() 得到一些作为关键字参数传递的仅位置参数 ‘a'
  • 在 / 形参前的参数只能通过位置参数传递

什么是仅限关键字参数

  • 和仅位置参数一样,也是 Python 3.8 的新特性
  • 参数只传 * 代表仅关键字参数
  • 添加了它,表示函数形参只能通过关键字参数传递,而不能通过位置参数传递

仅限关键字参数栗子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def f1(a, *, b, c):
    return a + b + c


# 正确
f1(1, b=2, c=3)
f1(1, **{"b": 2, "c": 3})

# 错误
f1(1, 2, c=3)


# 输出结果
6
6

    f1(1, 2, c=3)
TypeError: f1() takes 1 positional argument but 2 positional arguments (and 1 keyword-only argument) were given 
  • 报错信息:接受1个位置参数,但提供了2个位置参数(和1个仅限关键字的参数)
  • 在 * 形参后的参数只能通过关键字参数传递

/ 和 * 混合栗子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def f(a, /, b, *, c):
    print(a, b, c)


# 正确
f(1, 2, c=3)
f(1, b=2, c=3)

# 错误
f(a=1, b=2, c=3)
f(1, 2, 3)


# 输出结果
1 2 3
1 2 3
栗子二
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def f(a, b, /, c, *, d, e):
    print(a, b, c, d, e)


# 正确
f(1, 2, c=3, d=4, e=5)

# 错误
f(1, 2, 3, 4, 5)

# 输出结果
1 2 3 4 5 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python基础之:函数
函数是结构化编程的基础,也是代码复用的基石。Python中通过def来自定义函数。本文将会深入探索Python中函数的秘密。
程序员鑫港
2022/01/07
3870
Python函数参数之全面讲解
Python函数参数 Python函数参数 本文主要介绍Python的函数参数,各种形式的参数。建议动手试试,可以加深理解。 函数参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂的逻辑被封装起来,调用者无需了解。 Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以
1846122963
2018/03/09
1.3K0
Python基础学习(二)
函数是对程序逻辑进行结构化或是过程化的一种编程方法,其是组织好的,可重复使用的,用来实现单一,或者相同功能的代码段。
py3study
2020/01/17
7230
11个案例讲透 Python 函数参数
今天给大家分享一下自己整理的一篇 Python 参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上 80% 的文章讲的都要明白,如果你是入门不久的 python 新手,相信本篇文章应该对你会有不小的帮助。
龙哥
2021/07/13
4700
11个案例讲透 Python 函数参数
Python3.8 新特性-很有用的呀
1、海象表达式****1 2、强制位置参数****2 3、增强型f-string****2 4、continue关键字的使用****3 5、as_integer_ratio()方法****3 6、其他新增语法特性****3 (1)添加 \N{name} 转义符在正则表达式 中的支持: 3 (2) 字典反向迭代 4 (3) 函数关键字参数限制 4 (4) yield和return语法增强 4 (5) 组合数据类型语法警告提示 4 (6) 日期时间对象改进 5 (7) Ctrl-C终止程序的改进 5 (8) 数据拷贝增强型语法 5 (9) pow()函数的改进 5 (10) mod()取模的改进 6 (11) 字典推导式的改进 6 (12) 字典数据执行顺序 6
大牧莫邪
2020/12/31
6960
[949]python不定长参数*args和**kwargs
在python语言写成的模块中的函数里,常常可以看到函数的参数表列里面有这两个参数,形如:
周小董
2021/03/08
3.6K1
【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南
我们知道数学中的函数,我们输入一个数,在通过对应的映射关系得到另一个数,如下图给出了两个简单的数学函数:
换一颗红豆
2025/03/03
580
【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南
Python基础之:函数
函数是结构化编程的基础,也是代码复用的基石。Python中通过def来自定义函数。本文将会深入探索Python中函数的秘密。
用户2323866
2021/06/21
3690
day12- 函数
我们学习编程的时候,一学到函数就感觉很难,其实函数很简单,听我给你细细道来,在我们之前的学习中,我们最常用的一个操作,打印输出print(),其实这就是我们最先接触的函数,只不过这是由Python源码中编写好的函数,那我们来看下print()函数到底是怎么写的?
似小陈吖
2024/04/03
1190
day12- 函数
python文档:控制流(if,for,函数,lambda等)
可以有零个或多个 elif 部分,以及一个可选的 else 部分。 关键字 ‘elif’ 是 ‘else if’ 的缩写,适合用于避免过多的缩进。 一个 if … elif … elif … 序列可以看作是其他语言中的 switch 或 case 语句的替代。
川川菜鸟
2021/10/18
9020
Python 3.8 新功能
Python 3.8 是 Python 编程语言的最新主要版本, 它包含许多新功能和优化。
Python知识大全
2020/02/13
5320
Python 3.8 新功能
Python学习笔记(二)
正如英文单词描述的,函数就是“功能”的意思,把完成一个功能所需要的代码打包起来放在一个函数下可以方便以后程序的重复调用,也能使整体代码条理清晰。正如前面用到的print(), input()之类的内置函数,这里讨论的函数为自定义涵数。
py3study
2020/01/17
8260
Python 3.8.0来了!
那么,这次新发布的 Python 3.8.0 有哪些重要的改进呢?以下是是 Python 3.8 相比 3.7 的新增特性。
新智元
2019/10/15
9960
Python 3.8.0来了!
【python入门到精通】python核心知识之参数与变量完全解读
上面的函数虽然解决了问题,但是显然不够完美,假设在大部分的调用里,基本都只是求x的2次幂,但 是这个时候我在调用的时候依旧每次都得传n,这就显得有点多余。有没有什么方法可以让我调用的时 候少些一个入参呢?
大数据小禅
2021/12/21
4290
Python 3.8.0 正式版发布,新特性初体验
新增一种新语法形式::=,又称为“海象运算符”(为什么叫海象,看看这两个符号像不像颜表情),如果你用过 Go 语言,应该对这个语法非常熟悉。
张凯强
2019/11/19
4580
Python 3.8.0 正式版发布,新特性初体验
Python基础-4 使用函数减少重复操作
记录日期、地点和消费内容及金额,这些内容会改变,我们把它们作为参数传递给函数((date, place, item, price)作为参数传入函数)。
一只大鸽子
2022/12/06
2.1K0
Python基础-4 使用函数减少重复操作
Python中函数参数传递方法*args, **kwargs,还有其他
来源:DeepHub IMBA本文约3000字,建议阅读9分钟本文将讨论Python的函数参数。 我们将了解*args和**kwargs,/和*的都是什么,虽然这个问题是一个基本的python问题,但是在我们写代码时会经常遇到,比如timm中就大量使用了这样的参数传递方式。 定义和传递参数 parameters 和arguments 之间的区别是什么?许多人交替使用这些术语,但它们是有区别的: Parameters 是函数定义中定义的名称; Arguments是传递给函数的值。 红色的是param
数据派THU
2023/04/18
1K0
Python中函数参数传递方法*args, **kwargs,还有其他
Python教程(25)——Python中参数类型详解
当我们在编写函数时,会定义一些占位符,这些占位符就是参数,参数是函数定义中用于接收外部传递值的占位符,这个会帮助我们在函数被调用时接收外部传递的值。在Python当中,有各种各样类型的参数,主要有位置参数、默认参数、关键字参数、可变位置参数、可变关键字参数以及强制关键字参数。
一点sir
2024/01/19
1730
Python教程(25)——Python中参数类型详解
8-函数类型详解
在python中函数(function)或方法(method)的参数类型有哪些,每种参数类型要怎么传参才能调用,默认参数要怎么设置才算合理。在python有一个标准模块inspect, 主要提供了四种用处:
用户3106371
2019/03/11
4850
week04_python函数、参数及参数
        由若干语句组成的语句块、函数名称、参数列表构成,它是组织代码的最小单元;
py3study
2020/01/14
5450
相关推荐
Python基础之:函数
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文