python函数学习笔记
2018-03-06 10:29
387 查看
1,函数名赋值给变量
再来个PHP的
效果一样
2,函数多个默认参数的设置
php 的
3,python 函数返回多个值,这点php是做不到的,php 只能返回一个
可变的参数
4,关键字(key)参数,这个也很牛逼,可以传不定长的字典dic也就是java 里的map (key-values )键值对作为参数
命名关键字参数
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。
以及调用函数时如何传入可变参数和关键字参数的语法:
可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过args传入:func((1, 2, 3));
关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过kw传入:func({‘a’: 1, ‘b’: 2})。
使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。
定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数。
def func(x): return x f=func #把函数名赋值给变量 print(f(1)) #用变量调用这个函数
再来个PHP的
<?php function func($x){ echo $x; } $f='func'; $f(1); ?>
效果一样
2,函数多个默认参数的设置
def func(x,y='y',z='z'): return x+y+z print(func('a',z='c')) #跳过y参数直接设置z参数,输出ayc
php 的
function func($x,$y='y',$z='z'){ echo $x.$y.$z; } func('a',$z='c'); //输出acz 而不是想要的ayc,证明php参数必须顺序对应,即使func('a',$b='b',$c='c')这样,依旧按照顺序输出:abc,这点php解释器做的不怎么样,差评
3,python 函数返回多个值,这点php是做不到的,php 只能返回一个
def func(name,age=19): return name,age print(func('lianf')) #输出('lianf', 19),其实是tuple 类型的一个不可变列表
可变的参数
def func(name,*km): return name,km print(func('lianf',1,2,3,4,6)) #输出('lianf', (1, 2, 3, 4, 6)),可变的部分是一个tuple,可以用for x in km 循环出来如下: def func(name,*km): s=name+":" for x in km: s=s+x return s print(func('lianf',"a","b","c")) #输出 lianf:abc,灵活,牛逼,慢慢喜欢上了这个语言
4,关键字(key)参数,这个也很牛逼,可以传不定长的字典dic也就是java 里的map (key-values )键值对作为参数
def func(name,**km): return name,km print(func('liangf',a=1,b="bb")) #输出('liangf', {'a': 1, 'b': 'bb'}),注意{} 注意这个大括号牛逼!!!
命名关键字参数
def func(name,*,b,c): return name,b,c print(func('lianf',b=1,c='a')) #输出('lianf', 1, 'a')
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
def func(name,age=18,*a,b,c,**k): return name,age,a,b,c,k print(func('lianf',1,2,3,b=1,c='a',n='n',m='m')) #输出:('lianf', 1, (2, 3), 1, 'a', {'n': 'n', 'm': 'm'})
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。
以及调用函数时如何传入可变参数和关键字参数的语法:
可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过args传入:func((1, 2, 3));
关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过kw传入:func({‘a’: 1, ‘b’: 2})。
使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。
定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数。
相关文章推荐
- python学习笔记(二)流程控制 函数
- Python 2.7 学习笔记 内置语句、函数、标准库
- Python学习笔记010——函数文档字符串
- Python学习笔记二--函数
- 机器人概率定位学习笔记第二篇_使用python建立机器人感知函数(sense fuction)
- IPython下执行shell命令-魔力函数(alias store rehash)- 千月的python linux 系统管理指南学习笔记(6)
- python学习笔记8-函数的多类型传值和冗余参数
- Python学习笔记:split()函数和strip()函数的使用说明
- python学习笔记-定义函数(哈哈,偷懒了03.10)
- Python进阶学习笔记——函数式编程之高阶函数
- Python学习笔记总结(二):函数和模块
- Python基础教程 第6章: 抽象(函数) 学习笔记
- python学习笔记,序列、函数、lambda表达式
- Python3.3 学习笔记4 - 函数 - lambda
- python2.7学习笔记(5) ——函数
- <Python高级全栈开发工程师-1>学习过程笔记【181-184】正则表达式 <特殊字符><函数>
- python学习笔记——基础篇(3):函数的定义
- Python学习笔记DAY3---函数
- Python 2.7 学习笔记 基本语法和函数定义
- Python学习笔记之常用函数及说明