文档章节

零基础学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 是军刀型的开源工具,被广泛应用于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
十问Python,所有关于Python的疑问,由十年pythoner给你作答!

为什么要学习Python编程语言?哪些人适合学习Python? 先回答第一个被初学编程的朋友问到最多的问题,为什么要学习Python编程语言? 答:现在信息更新的非常快速,又迎来了大数据的时代, 各...

Python新世界
07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

设计模式:简单工厂模式(静态共产方法模式)

简单工厂的构成包括三个角色: 1)抽象产品类 2)具体产品类(继承抽闲产品类) 3)工厂类(生产具体产品) 具体代码实现 1、抽象产品类 /** * 抽象类 */public abstract class Car ...

京一
7分钟前
0
0
Lombok使用

1 介绍 Lombok是一个简单的Java库,改工具可以通过注解自动地提供一些方法,简化开发。比如编写POJO时需要为每个属性提供getter()方法和setter()方法,这就可以使用Lombok实现。 2 配置 Lomb...

SuperHeroes
16分钟前
0
0
Confluence 6 删除垃圾内容

属性(profile)垃圾 属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。 如果你有很多垃圾用户在你的系统中创建了属性,你可以使用...

honeymose
18分钟前
0
0
java虚拟机之内存模型

1. 概述 对于从事 C、C++ 程序开发的人员来说,在内存管理领域,他们既是拥有最高权力的「皇帝」又是从事基础工作的「劳动人民」 --- 既拥有每个对象的「所有权」,又担负着每一个对象生命开...

firepation
20分钟前
0
0
解决linux的-bash: ./xx: Permission denied

解决linux的-bash: ./xx: Permission denied 在linux下执行sh文件时提示下面信息: -bash: ./xx.sh: Permission denied解决:chmod 777 xx.sh 1 2 3 4 Linux chmod +755和chmod +777 ......

DemonsI
31分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部