首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python学习入门基础教程(learning Python)-2.3.2Python函数实参详解

2013-10-08 
Python学习入门基础教程(learning Python)--2.3.2Python函数实参详解? ?本节主要讨论函数调用时参数的实参

Python学习入门基础教程(learning Python)--2.3.2Python函数实参详解

? ?本节主要讨论函数调用时参数的实参问题。

1. 实参赋值顺序和型参定义顺序一一对应

? ? Python在调用哪个子函数时,如果型参为多个,一般实参的排布顺序和型参顺序保持一致,即一一对应。我们以下面的代码为例来说明一下。

?

[python]?view plaincopy
  1. #define?function:?area?with?two?args??
  2. def?area(width,?height):??
  3. ?????z?=?width?*?height??
  4. ?????print(z)??
  5. ??
  6. #define?fucntion:?main???
  7. def?main():??
  8. ?????w?=?int(raw_input("plz?input?width"))??
  9. ?????h?=?int(raw_input("plz?input?heighnt"))??
  10. ?????#call?function?area??
  11. ?????area(w,?h)??
  12. ??
  13. #entry?of?programme??
  14. main()??

? ??程序的第11行是调用area子函数,第11行的area里的w和h我们称之为实参,第2行area里的width和height我们称之为型参,第11行是函数area被main调用,由于函数定义时(第2~4行)area有两个型参width和height,一般情况下调用时(如第11行)要依据函数定义时(第2行)设定的型参的个数和顺序一对一的赋值(实参),其逻辑如下图所示。

?

Python学习入门基础教程(learning Python)-2.3.2Python函数实参详解

2.实参和型参不是一一对应

? ? Python里允许函数调用时,实参的赋值顺序和型参定义顺序不一致,主要函数调用时明确的说明,那个值赋给那个型参即可,因此函数调用时括号里是表达式,实现实参和型参不一致赋值调用的语法结构如下:

? ? function(argx = value1, argi = value2, argm = value3,...)

? ? 示例如下:

?

[python]?view plaincopy
  1. #define?function:?area?with?two?args??
  2. def?area(width,?height):??
  3. ?????z?=?width?*?height??
  4. ?????print(z)??
  5. ??
  6. #define?fucntion:?main???
  7. def?main():??
  8. ?????#call?function?area??
  9. ?????area(height?=?20,?width?=?15)??
  10. ??
  11. #entry?of?programme??
  12. main()??

?

Python学习入门基础教程(learning Python)-2.3.2Python函数实参详解??

?

?

? 思考一下如果去掉width=可行么?程序有问题么?

??

[python]?view plaincopy
  1. #define?function:?area?with?two?args??
  2. def?area(width,?height):??
  3. ?????z?=?width?*?height??
  4. ?????print(z)??
  5. ??
  6. #define?fucntion:?main???
  7. def?main():??
  8. ?????#call?function?area??
  9. ?????area(height?=?20,?15)??
  10. ??
  11. #entry?of?programme??
  12. main()??

? ? 15能赋给width么?python暂时还没那么智能,呵呵!

热点排行