码迷,mamicode.com
首页 > 编程语言 > 详细

Python 函数的参数

时间:2014-12-28 15:23:45      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:

# coding=gbk
# python 函数的参数:包括必选参数,默认参数,可变参数,关键字参数

# 1 必选参数,就是每次必选要输入的参数
def abs1(num):                 #计算绝对值
    if isinstance(num,[int,float]):
        return abs(num)
    else :
        raise TypeError ("num is not the right type")
a = abs(1)
print (a)

# 2 默认参数,就是每次如果不输入,则使用系统默认值 def sqrt_n(x,n=2): #计算n次方 s=1 while n>0: s=s*x n=n-1 return s print (sqrt_n(5)) print (sqrt_n(5,3)) # 当有多高默认参数的时候,可以再调用的时候指定某个参数的值 def student_enroll(name,age,city="beijing",gender=male): return name,age,city,gender student1 = student_enroll("Jim",18) student2 = student_enroll("Obama",18,gender="female") print ("st1 is: ",student1,\nst2 is: ,student2)
# 3 可变参数,传入的参数的个数是变的,他们调用时自动组装为一个tuple 举例说明 def sum2(*numbers): #计算几个数的和 sum2=0 for i in numbers: sum2=sum2+i return sum2 a=(1,5,2,6,2) #这里使用list同样有效,方法一样 print (sum2(*a)) #此处输入的是tuple,所以a的前面加*表示可变参数,实际可以这么写 print (sum2(1,5,2,6,2)) # 或者 print (sum2(a[0],a[1],a[2],a[3],a[4]))
# 4 关键字参数,允许传入0个或者任意个含参数名的参数,这些关键字参数自动组装为一个dict def matriculate(name,age,**kw): #此处的kw是keyword的缩写,也可以用其他字符替代 return(name,age,kw) s1 = matriculate("tom",18) s2 = matriculate("Jack",18,city = beijing,gender = male) print (s1 is: ,s1,\n,s2 is:,s2) #也可以提前定义好关键字参数kw(这里用sim代替),然后直接用如 sim={city:beijing,job:teacher,gender:male} s3= matriculate(Hu,18,**sim) print (s3)
#网上的例子 #最神奇的是通过一个tuple和dict,你也可以调用该函数: def func(a, b, c=0, *args, **kw): print (a =, a, b =, b, c =, c, args =, args, kw =, kw) args = (1, 2, 3, 4) kw = {x: 99} func(*args, **kw) #所以,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它

# 注意 ‘‘‘ 默认参数一定要用不可变对象,如l[]=none,否则运行会有逻辑错误 *args 是可变参数,args接收的是一次tuple() **kw 是关键字参数,接收的是一个dict{} 使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法 ‘‘‘ #部分参考自网络,特此声明

 

Python 函数的参数

标签:

原文地址:http://www.cnblogs.com/lizhaoxian/p/4189997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!