Python传递参数的多种方式(小结)

yipeiwu_com6年前Python基础

一 位置传递

没什么好过多讲解.

# 位置传递实例:
def fun1(a,b,c):
  return a+b+c

print(fun1(1,2,3))

输出:

6

二 关键字传递

更具每个参数的名字写入函数参数

 # 关键字传递
 def fun2(a,b,c):
  return a+b+c
 
print(fun2(1,c=3,b=2))

输出:

三 参数默认值传递

给函数的输入参数设定一个默认值,如果该参数最终没有输入,则使用默认参数出入函数.

# 默认值传递
 def fun3(a,b=2,c=3):
  return a+b+c

print(fun3(a = 1))

输出:

四 包裹传递

在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数或者包裹关键字参数来进行参数传递会非常有用。

下面是包裹位置传递的例子:

def fun4(*name):
 print(type(name))
print(name)

fun4([1,2,3])
fun4((1,2,3))
fun4(1,2,3)

结果:

<class 'tuple'>
([1, 2, 3],)
<class 'tuple'>
((1, 2, 3),)
<class 'tuple'>
(1, 2, 3)

从上面的结果分析:

在fun4的参数表中,所有的参数被name收集,根据位置合并成一个元祖(tuple),这就是包裹位置传递。

 五 解包裹传递

 def func1(a,b=1,*c,**d):
  print(a,b,c,d)  

 
l = [3,4]
dic = {'@':2,'#':3}

func1(1,2,l,dic)
print("---------**------------")
func1(1,2,*l,**dic)
func1(1,2,3,4,**dic)

运行结果:

 1 2 ([3, 4], {'@': 2, '#': 3}) {}
 ---------**------------
 1 2 (3, 4) {'@': 2, '#': 3}
 1 2 (3, 4) {'@': 2, '#': 3}

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅谈Python peewee 使用经验

本文使用案例是基于 python2.7 实现 以下内容均为个人使用 peewee 的经验和遇到的坑,不会涉及过多的基本操作。所以,没有使用过 peewee,可以先阅读文档 正确性和覆盖面...

Django ImageFiled上传照片并显示的方法

1:首先理解settings.py中 MEDIA_ROOT: MEDIA_URL:这两者之间的关系。 MEDIA_ROOT:就是保存上传图片的根目录,比如说MEIDA_ROOT ="C:...

在Python中使用正则表达式的方法

正则表达式(regular expression)是一种用形式化语法描述的文本匹配模式。在需要处理大量文本处理的应用中有广泛的使用,我没使用的编辑器,IDE中的搜索常用正则表达式作为搜索...

python内存管理分析

python内存管理分析

本文较为详细的分析了python内存管理机制。分享给大家供大家参考。具体分析如下: 内存管理,对于Python这样的动态语言,是至关重要的一部分,它在很大程度上甚至决定了Python的执...

使用Rasterio读取栅格数据的实例讲解

Rasterio简介 有没有觉得用GDAL的Python绑定书写的代码很不Pythonic,强迫症的你可能有些忍受不了。不过,没关系,MapBox旗下的开源库Rasterio帮我们解决了...