Python学习入门基础教程(learning Python)--2.3.2Python函数实参详解
2013-08-23 21:57
2066 查看
本节主要讨论函数调用时参数的实参问题。1. 实参赋值顺序和型参定义顺序一一对应 Python在调用哪个子函数时,如果型参为多个,一般实参的排布顺序和型参顺序保持一致,即一一对应。我们以下面的代码为例来说明一下。[python]view plaincopy#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
w = int(raw_input("plz input width"))
h = int(raw_input("plz input heighnt"))
#call function area
area(w, h)
#entry of programme
main()
程序的第11行是调用area子函数,第11行的area里的w和h我们称之为实参,第2行area里的width和height我们称之为型参,第11行是函数area被main调用,由于函数定义时(第2~4行)area有两个型参width和height,一般情况下调用时(如第11行)要依据函数定义时(第2行)设定的型参的个数和顺序一对一的赋值(实参),其逻辑如下图所示。
2.实参和型参不是一一对应 Python里允许函数调用时,实参的赋值顺序和型参定义顺序不一致,主要函数调用时明确的说明,那个值赋给那个型参即可,因此函数调用时括号里是表达式,实现实参和型参不一致赋值调用的语法结构如下: function(argx = value1, argi = value2, argm = value3,...) 示例如下:[python]view plaincopy#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
#call function area
area(height = 20, width = 15)
#entry of programme
main()
思考一下如果去掉width=可行么?程序有问题么?[python]view plaincopy#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
#call function area
area(height = 20, 15)
#entry of programme
main()
15能赋给width么?python暂时还没那么智能,呵呵!
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
w = int(raw_input("plz input width"))
h = int(raw_input("plz input heighnt"))
#call function area
area(w, h)
#entry of programme
main()
程序的第11行是调用area子函数,第11行的area里的w和h我们称之为实参,第2行area里的width和height我们称之为型参,第11行是函数area被main调用,由于函数定义时(第2~4行)area有两个型参width和height,一般情况下调用时(如第11行)要依据函数定义时(第2行)设定的型参的个数和顺序一对一的赋值(实参),其逻辑如下图所示。
2.实参和型参不是一一对应 Python里允许函数调用时,实参的赋值顺序和型参定义顺序不一致,主要函数调用时明确的说明,那个值赋给那个型参即可,因此函数调用时括号里是表达式,实现实参和型参不一致赋值调用的语法结构如下: function(argx = value1, argi = value2, argm = value3,...) 示例如下:[python]view plaincopy#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
#call function area
area(height = 20, width = 15)
#entry of programme
main()
思考一下如果去掉width=可行么?程序有问题么?[python]view plaincopy#define function: area with two args
def area(width, height):
z = width * height
print(z)
#define fucntion: main
def main():
#call function area
area(height = 20, 15)
#entry of programme
main()
15能赋给width么?python暂时还没那么智能,呵呵!
相关文章推荐
- Python学习入门基础教程(learning Python)--2.1 Python下自定义函数 .
- Python学习入门基础教程(learning Python)--2.3.1 Python传参函数设计
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
- Python学习入门基础教程(learning Python)--6.4 Python的list与函数
- Python学习入门基础教程(learning Python)--2.3.1 Python传参函数设计
- Python学习入门基础教程(learning Python)--3.3 分支语句的条件表达式详解 .
- Python学习入门基础教程(learning Python)--2.3.4Python函数返回值
- Python学习入门基础教程(learning Python)--2 Python简单函数设计 .
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
- Python学习入门基础教程(learning Python)--3.2 if-else分支语句
- Python学习入门基础教程(learning Python)--6 Python下的list数据类型
- Python学习入门基础教程(learning Python)--3.1Python的if分支语句
- Python学习入门基础教程(learning Python)--6.3 Python的list切片高级
- Python学习入门基础教程(learning Python)--2.3.3Python函数型参详解
- Python学习入门基础教程(learning Python)--5.2 Python读文件基础
- Python学习入门基础教程(learning Python)--2.2 Python下的变量基础 .
- Python学习入门基础教程(learning Python)--3.3.2 Python的关系运算
- Python学习入门基础教程(learning Python)--2.2.1 Python下的变量解析 .
- Python学习入门基础教程(learning Python)--1.2.2 Python格式化输出基础 .
- Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式