文档章节

零基础学python-17.3 特定的参数匹配模型快速入门

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 666
阅读 2
收藏 0

这一章节我们来讨论一下特定的参数匹配模型快速入门的基础知识

在讨论语法细节前我需强调一下,一般来说我们都不需要用到这种匹配模型,这里只是简单的介绍一下

1.位置:从左到右进行匹配

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

	
>>> a=1
>>> b=2
>>> c=3
>>> test(a,b,c)
1 2 3
>>>


 

2.关键字参数:通过参数名进行匹配

 

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

	
>>> a=1
>>> b=2
>>> c=3
>>> test(a,b,c)
1 2 3
>>> test(c=3,b=2,a=1)
1 2 3
>>>


我们继续沿用上面的代码,只不过在调用的时候把参数特别注明,随后的调用结果跟上面的一样

 

3.默认参数:为没有传入值的参数定义参数值

>>> a=1
>>> b=2
>>> c=3
>>> def test(a,b=3,c=4):
	print(a,b,c)

	
>>> test(a)
1 3 4
>>>


上面的代码里面我们调用test的时候没有传入b和c,但是由于在定义函数之初就已经把b和c设定了默认值,所以打印的时候是输出默认值

 

4.可变参数:收集任意多基于位置或者关键字的参数

注意:它们都是以*开头

>>> def test(*args):
	print(args)

	
>>> a=1
>>> b=2
>>> test(a,b)
(1, 2)
>>> a=(1,2,3)
>>> b=[1,2,3]
>>> c='abc'
>>> d=5
>>> test(a,b,c,d)
((1, 2, 3), [1, 2, 3], 'abc', 5)
>>>


5.可变参数解包:传递任意多基于位置或者关键字的参数

>>> def test(**args):
	print(args)

	
>>> test(1,2)
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    test(1,2)
TypeError: test() takes 0 positional arguments but 2 were given
>>> test(a=1,b=2)
{'a': 1, 'b': 2}
>>>


从上面的代码可以看出,它只对关键字参数起作用,其他的报错

 

6.keyword-only模式

>>> def test(a,*args,b):
	print(a,args,b)

	
>>> test(a=1,b=2)
1 () 2
>>> test(1,5,b=2)
1 (5,) 2


注意:上面的代码必须存在b=xxx不然会报错,这里必须把b当成是关键字参数

>>> def test(a,*args,b):
	print(a,args,b)

	
>>> test(a=1,b=2)
1 () 2
>>> test(1,5,b=2)
1 (5,) 2
>>> test(1,5)
Traceback (most recent call last):
  File "<pyshell#41>", line 1, in <module>
    test(1,5)
TypeError: test() missing 1 required keyword-only argument: 'b'
>>> test(a=1,2)
SyntaxError: non-keyword arg after keyword arg
>>>


总结:这一章节简单讨论了特定的参数匹配模型快速入门的基础,以及会出现的一些问题

 

这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/48502743

共有 人打赏支持
raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
Python基础总结成千行代码,让Python入门更简单!

只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python!当时我就不信邪啊,等我看完之后,即使作为一个Python老鸟了,还是领会到了很多教授他的独特见解!...

糖宝lsh
09/10
0
0
荐书丨确认过眼神,这份Python书单一定是你的菜

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 Python 是军刀型的开源工具,被广泛应用于Web 开发、爬虫、数据清洗、自然语言处理、机器学习和人工智能等方...

csdnsevenn
05/05
0
0
老司机工作总结!零基础python小白学习编程一定要知道的那些技巧

今天又是一年一度的关键时刻:高考了。高考可谓是牵动着无数普通家庭的心。但是高考就是千军万马过独木桥,是一场没有硝烟的战争,有输有赢。可是高考跟战争不一样的是,高考就算失败也会有其...

Python学习
06/07
0
0
给伸手党的福利:Python 新手入门引导

这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。 在这个信...

crossin
06/15
0
0
5个python爬虫教材,让小白也有爬虫可写,含视频教程!

认识爬虫   网络爬虫,如果互联网是一张蜘蛛网,网络爬虫既是一个在此网上爬行的蜘蛛,爬了多少路程即获取到多少数据。 python写爬虫的优势   其实以上功能很多语言和工具都能做,但是用...

柯西带你学编程
06/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

github精选:微信小程序开发技巧(12月31日更新)2016

框架部分 所有页面都需要在 app.json 文件中注册在 pages 数组中,注册格式为:"路径/文件名" 注:文件名无需添加扩展名 app.josn 中的 pages 数组中的第一个页面为小程序的启动页 每个页面的...

阿K1225
5分钟前
0
0
OSChina 周日乱弹 —— 小心着凉 @红薯

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:5.33起,其声呜呜然,如怨如慕,如泣如诉。余音袅袅,不绝如缕。分享Arch Enemy的单曲《Bridge Of Destiny (2009)》 《Bridge Of...

小小编辑
今天
297
4
what f,,

anlve
今天
9
0
初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
15
0
现场看路演了!

HiBlock
昨天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部