“理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机。

不记得没关系,只需要知道:有这么一位老司机,

穿上西装带大家打拼职场!

操起键盘带大家打磨技术!

 2019年10月中旬,Python 3.8发布了。

英语好的Python爱好者,可以看看官宣:

https://docs.python.org/3.8/whatsnew/3.8.html

    今天老司机给大家讲一下新特性中比较语焉不详的 “Positional-only参数”。

先看一段原文:

后面的基本没怎么解释了…

老司机第一次看时候,觉得有点儿一头雾水。

没关系,计算机是一种实践科学。撸码试试看。

安装好最新的Python 3.8,配好最新的PyCharm。

先按照例子来:

def func1(a, b, /, c, d, *,  e, f):

print(a, b, c, d, e, f)

func1(1,2,3,d=4,e=5,f=6)

# func1(1,2,3, 4,e=5,f=6) #这样也可以

# 输出 1 2 3 4 5 6

官网的例子能通过,不能说明什么,还是不明白“/”和“*”的区别。

小心谨慎改造一下:

def func1(a, b, /, c, d, *,  e, f):

print(a, b, c, d, e, f)

def func2(a1, /, b1, *, c1):

print(a1, b1, c1)

func1(1,2,3,4,e=5,f=6)

func2(10,20, c1=30)

# 输出

1 2 3 4 5 6

10 20 30

再改造一下,这次去掉“*”:

def func1(a, b, /, c, d, *,  e, f):

print(a, b, c, d, e, f)

def func2(a1, /, b1, *, c1):

print(a1, b1, c1)

def func3(a2, /, b2):

print(a2, b2)

func1(1,2,3,4,e=5,f=6)

func2(10,20, c1=30)

func3(100, 200)

# func3(100, b2=200) # 效果一样

# 输出

1 2 3 4 5 6

10 20 30

100 200

对比一下,去掉“/”,只留“*”

def func1(a, b, /, c, d, *,  e, f):

print(a, b, c, d, e, f)

def func2(a1, /, b1, *, c1):

print(a1, b1, c1)

def func3(a2, /, b2):

print(a2, b2)

def func4(*, a3):

print(a3)

func1(1,2,3,4,e=5,f=6)

func2(10,20, c1=30)

func3(100, 200)

# func3(100, b2=200) 也没问题

func4(a3=1000) # 不写a3=,则报错

# 输出:

1 2 3 4 5 6

10 20 30

100 200

1000

规律基本看出来了吧?

•“/”前,必须用位置变量;

•“/”后,“*”前,可用位置变量,可用关键字变量;

•“*”后,必须用关键字变量形式。

看看相关的PEP文档PEP570:

https://www.python.org/dev/peps/pep-0570/

里面有一段,这么写的:

实践和理论(PEP文档)都对上了吧?

学Python,多看PEP文档,除了好处,还有更多的好处。

面试时候,如果你能引经据典说出PEP文档如何如何写的,你看哪个面试官会不高看一眼?

多数情况下,直接初级转中级,“手动点点点“”变“性能自动化”。

前提是被面试人说对了,对吧? ^_^

作  者:Testfan Arthur

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

Python3.8新特性--PositionalOnly参数的更多相关文章

  1. 字符串格式的方法%s、format和python3.6新特性f-string和类型注解

    一.%s msg = '我叫%s,今年%s,性别%s' %('帅哥',18,'男') print(msg) # 我叫帅哥,今年18,性别男 二.format # 三种方式: # 第一种:按顺序接收参数 ...

  2. python3.8 新特性

    https://docs.python.org/3.8/whatsnew/3.8.html python 3.8的新功能本文解释了与3.7相比,python 3.8中的新特性. 有关完整的详细信息,请 ...

  3. python3.6 新特性学习

    #支持类型提示 typing { def greeting(name: str) -> str: return 'Hello ' + name #在函数greeting中,参数名称的类型为str ...

  4. python3.8新特性

    海象运算符(赋值运算符) #原来 def choice(): s = ' jsadlk '.strip() res = isinstance(s, int) if res: return 'int' ...

  5. 你不得不了解的Python3.x新特性

    从 3.0 到 3.8,Python 3 已经更新了一波又一波,但似乎我们用起来和 2.7 没有太大区别?以前该怎么写 2.7 的代码现在就怎么写,只不过少数表达方式变了而已.在这篇文章中,作者介绍了 ...

  6. C#4.0新特性:可选参数,命名参数,Dynamic

    1.可选参数 可以为方法的参数设置一个默认值,如下: class Program { static void Main(string[] args) { Show(); Show("cary ...

  7. Python3.8新特性-- 海象操作符

    “理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打拼职场的老司机. 不记得没关系,只需要知道:有这么一位老司机, 穿上西装带大家打拼职场! 操起键盘带大家打磨技术! ...

  8. C# 9.0 新特性之参数非空检查简化

    阅读本文大概需要 1.5 分钟. 参数非空检查是缩写类库很常见的操作,在一个方法中要求参数不能为空,否则抛出相应的异常.比如: public static string HashPassword(st ...

  9. Python3.X新特性之print和exec

    print print 现在是一个函数,不再是一个语句.<语法更为清晰> 实例1 打开文件 log.txt 以便进行写入并将对象指定给 fid.然后利用 print将一个字符串重定向给文件 ...

随机推荐

  1. 四、VSCode调试vue项目

    1.先决条件设置 你必须安装好 Chrome 和 VS Code.同时请确保自己在 VS Code 中安装了 Debugger for Chrome 扩展的最新版本. 在可以从 VS Code 调试你 ...

  2. Mac下启动iOS模拟器

    终端列出你安装的所有可用的设备xcrun instruments -s 或 xcrun simctl list 启动方式一: 先启动模拟器:open -a Simulator,这时会以默认的iOS系统 ...

  3. loadrunner脚本因为没有token报错

    目录 场景 解决过程 解决方案 总结 场景 用loadrunner11录制脚本,处理后回放,加上检查点,报错找不到检查点对应的内容,去掉检查点,没有报错,但是打开页面没有该操作的痕迹.手动在页面上操作 ...

  4. js-转换方式示例

    var person1 = { toLocaleString : function () { return "Baraka"; }, toString : function() { ...

  5. Python全栈开发之5、模块

    一.模块 1.import导入模块 #1.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑),本质就是.py结尾的python文件,实现一个功能 包:python package 用 ...

  6. [转帖]中芯国际14nm秋季量产 7nm工艺或在2020年底问世

    中芯国际14nm秋季量产 7nm工艺或在2020年底问世 https://news.mydrivers.com/1/641/641087.htm 中芯正在发力.. 今年秋天 14nm两场 明年底 7n ...

  7. 「java.util.concurrent并发包」之 CAS

    一  引言 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能 ...

  8. Magazine Delivery(POJ1695)【DP】

    题意:要求用三辆车往n座城市投递货物,起点都在一号城市,每辆车可以载任意数量的货物,投递顺序必须与城市编号递增序一致,并且,每次同时都只能有一辆车在跑路.求最短总路径之和. 思路:每时每刻,能够充分决 ...

  9. php用逗号格式化数字

    今日工作需要格式化数字显示当前商品价格,比如2335.32,需要格式化为2,335.32这样显示.我写了一个函数.总感觉这么简单的功能,但是却需要30多行代码来完成. <?php/**** * ...

  10. 进阶Python:装饰器 全面详解

    进阶Python:装饰器 前言 前段时间我发了一篇讲解Python调试工具PySnooper的文章,在那篇文章开始一部分我简单的介绍了一下装饰器,文章发出之后有几位同学说"终于了解装饰器的用 ...