关于Python函数的一段代码,求大神帮检查下代码问题,python大神,以下是教程原文利用函数名
关于Python函数的一段代码,求大神帮检查下代码问题,python大神,以下是教程原文利用函数名
以下是教程原文
利用函数名,函数参数可以被显式传递,这意味着在函数调用中指定的参数顺序可以不同于函数定义时的参数顺序:
>>> def f(a, b=2): return a + b, a - b>>> x, y = f(b=5, a=2)>>> print x7>>> print y-3
以下是我的问题
为啥最后 x = 7 , y = -3 ?
>>> def f(a, b=2): return a + b, a - b>>> x, y = f(b=5, a=2)# 在 f 函数体内,a=2, b=5# 所以它执行 return 2 + 5, 2 - 5# 即返回 7, -3# 所以>>> print x7>>> print y-3
python 的传参方法比较灵活,可以用顺序传参,也可以用命名实参。你的例子中恰好用了命名实参,命名实参不关心顺序。
可以用如下代码解释你的疑惑:
In [5]: def f(a,b): ...: print 'a=',a ...: print 'b=',bIn [6]: f(1,2)a= 1b= 2In [7]: f(a = 1, b=2)a= 1b= 2In [8]: f(b=2,a=1)a= 1b= 2
不知道我的回答是不是有帮助
f函数带用参数名:a, b。def(5,2) 得出x为7,y为3,但是楼主调用的时候带显试给出参数名,这样不应为参数顺序不同而影响调用。
def(b=5, a=2) 与def(a=2, b=5) 运算结果都是x为7,y为-3
def(5,2) 与def(2,5) 参数顺序不同导致结果不同。
编橙之家文章,
相关内容
- Python Ubuntu直接播放url链接mp3歌曲用什么库,pythonubunt
- Python程序员有尝试在Android平台设备做开发工作的吗?,
- 一种从没见过的python装饰器求指导,python装饰,求详解,
- 求常量处理基于Flask的Templates方法,flasktemplates,例如:
- python js对象的遍历,pythonjs对象,下面是两组数据格式;
- Python爬虫框架哪个最好用最简单,python爬虫框架,想使用
- Python除scrapy外,还有哪些优秀开源爬虫抓取框架工具呢
- Python编程语言和python脚本到底有什么区别?,python编程
- Python编译器怎么样处理tab和空格缩进问题,pythontab,设计
- Python项目引入第三方库好还是自己造轮子好?,python轮子
评论关闭