1. 位置传递:

#--coding:utf-8--
def send(name,address):
return 'package is sent to %s, located in %s' %(name, address)
print(send('winnie','shanghai'))

2. 关键字传递

def run(name,length, date):
return '%s ran %s on %s' %(name,length,date)
#关键字传递时,可以无视参数顺序,名字对了就行。
print(run(length = '5km',date ='11/29/2016',name = 'winnie'))
#关键字和位置混用,但要注意位置参数要出现在关键字前面。 如果不,那编译器不知道除了几个有名字的,位置的顺序。
print(run('winnie',length = '5km',date ='11/29/2016'))
winnie ran 5km on 11/29/2016
winnie ran 5km on 11/29/2016
[Finished in 0.2s]

3. 默认值参数

# 3. 默认值参数: 可以给出参数默认值
# 我们跑团每周二的例行约跑
def runWeekly(name,length, time = 'Tuesday 5:00PM'):
return '%s ran %s on %s' %(name,length,time)

调用:

print(runWeekly('jin','5km'))
print(runWeekly('jin','5km','Wednesday'))
print(runWeekly('jin',time = '5km','Wednesday')) #Error
  File "C:\pytest\Sele\tem1111.py", line 20
print(runWeekly('jin',time = '5km','Wednesday'))
SyntaxError: non-keyword arg after keyword arg
[Finished in 0.2s with exit code 1]

4. 包裹传递

# 4. 包裹传递 (*/**)
# 参数被 collect收集,type: tuple
def subselect(*collect):
print collect
print type(collect)
# 参数被 aa收集,type: dict
def packing(**aa):
#print test
print type(aa)
print aa

调用:

subselect(['ppe-test-1','dddd'])
packing(a=1,b=2,sub=[11,22])

输出:

<type 'tuple'>
<type 'dict'>
{'a': 1, 'b': 2, 'sub': [11, 22]}
[Finished in 0.2s]

5. 解包

# 5.Unpacking with */**
tuple1 = ['test1','test2','test3']
dictionary1 = {'at':'88wi','b':'secondParam','third':'winnie'}
print 'dictionary1 ', dictionary1
def useDict(at,b,third):
print at , b ,third
useDict(**dictionary1) #把字典参数解包 此时相当于关键字参数传递 名字和函数定义的参数名必须要一一对应
useDict(*tuple1) #把元组解包 此时相当于位置参数传递

【Python学习】函数参数传递方法四种(位置,关键字,默认值,包裹位置,包裹关键字传递)的更多相关文章

  1. python中函数参数传递的几种方法

    转自  http://www.douban.com/note/13413855/ Python中函数参数的传递是通过“赋值”来传递的.但这条规则只回答了函数参数传递的“战略问题”,并没有回答“战术问题 ...

  2. VB几种函数参数传递方法,Variant,数组,Optional,ParamArray

    VB几种函数参数传递方法,Variant,数组,Optional,ParamArray 一) 过程的参数被缺省为具有 Variant 数据类型. 1)ByRef按 地址传递参数在 VB 中是缺省的 按 ...

  3. es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式

    es6 Object.assign   目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...

  4. Python学习笔记(十四)

    Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...

  5. Perl,Python,Ruby,Javascript 四种脚本语言比较

    Perl 为了选择一个合适的脚本语言学习,今天查了不少有关Perl,Python,Ruby,Javascript的东西,可是发现各大阵营的人都在吹捧自己喜欢的语言,不过最没有争议的应该是Javascr ...

  6. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  7. python学习——函数参数

    一.为什么要使用函数 函数能提高应用的模块性,和代码的重复利用率. 二.函数的参数 位置参数:从左至右进行匹配 一般情况,也就是我们迄今为止最常用的方法,是通过位置进行匹配把参数值传递给函数头部的参数 ...

  8. Python列表函数和方法

    Python列表函数和方法: 函数: len(列表名): 返回列表长度 # len(列表名): # 返回列表长度 lst = [1,2,3,'a','b','c'] print("lst 列 ...

  9. 1.python的函数参数传递

    1 Python的函数参数传递 看两个例子: a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun ...

随机推荐

  1. 基于socket的客户端和服务端聊天简单使用 附Demo

    功能使用 服务端 分离一个不停接受客户端请求的线程 接受不客户端请求的线程中,再分离就收消息的线程 几大对象分别是 IPEndPoint IP终结点 服务端Socket,绑定终结点Bind,启动监听L ...

  2. MT4平台经验总结

    https://www.mql5.com/zh/code/8462 https://www.mql5.com/zh/code/8074 https://www.mql5.com/zh/code/787 ...

  3. HDU5942 : Just a Math Problem

    \[\begin{eqnarray*}ans&=&\sum_{i=1}^ng(i)\\&=&\sum_{i=1}^n\sum_{d|i}\mu^2(d)\\&= ...

  4. 如何將ViewData裡包含的Html輸出(MVC)

    如何將ViewData裡包含的Html輸出(MVC) 默認輸入ViewData裡的Htm系統會自動把標籤轉換而達不到預覽的效果, 我們如果要呈現解析後的HTML則要調用@MvcHtmlString.C ...

  5. Unity Lightmap动态加载研究

    什么情况下需要Lightmap? 移动平台上目前暂时还不能开实时光影效果,会卡成幻灯片.所以就需要将光影烘焙到贴图上. 什么情况下需要动态加载Lightmap? 1.当项目抛弃了Unity的多场景模式 ...

  6. BZOJ3252: 攻略

    Description 题目简述:树版[k取方格数]   众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏. 今天他得到了一款新游戏<XX半岛>,这款游戏有n个场景 ...

  7. Unity3D连接sqlite数据库操作C#版

    unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...

  8. C fopen

    格式:文件指针名=fopen(文件名,使用文件方式) 参数:文件名 意义"C://TC//qwe.txt" 文件C:/TC/qwe.txt"qwe.txt" 和 ...

  9. ZOJ 2771

      Description Considering a light entering three adjacent planes of glass. At any meeting surface, t ...

  10. iOS常见算法(二分法 冒泡 选择 快排)

    二分法: 平均时间复杂度:O(log2n) int halfFuntion(int a[], int length, int number)  { int start = 0; int end = l ...