标签:splay 对象 逗号 接收 面向对象 实参 就会 将不 大数
1 def 函数名(参数): 2 ... 3 函数体 4 ... 5 返回值
返回值:
函数的返回值需要使用到return这个关键字,返回值主要是用来接受函数的执行结果。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def email(): 4 a = 360 5 b = 11 6 c = a + b 7 return c 8 9 #执行 email() 这个函数 并把 返回值 赋值给 ret 10 ret = email() 11 print(ret)
运行结果:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def email(): 4 print(123) 5 return 789 6 print(456) 7 ret = email() 8 print(ret)
运行结果:
参数:
1、普通参数:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # mail 叫做函数 ret 的形式参数,简称形参 5 def ret(mail): 6 print(mail) 7 8 # "baidu" 叫做函数 ret 的实际参数,简称实参 9 ret("baidu")
运行结果:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 3 4 def ret(a,b): 5 print(a) 6 print(b) 7 8 ret(11)
运行结果:
在定义函数可以给参数指定一个默认值,如果该参数没有值传递,将使用默认值。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 3 4 def ret(a,b=22): 5 print(a) 6 print(b) 7 ret(11)
运行结果:
如果该参数有值传递,将覆盖掉默认值。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 3 4 def ret(a,b=22): 5 print(a) 6 print(b) 7 ret(11,33)
运行结果:
有默认值的参数必须在最后面定义,不能在没有默认值参数的前面。
默认情况传递参数时,是按照顺序来的,如果指定参数,就不需要按照顺序来了。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 3 4 def ret(a,b,c): 5 print(a) 6 print(b) 7 print(c) 8 ret(b=2,c=3,a=1)
运行结果:
4、动态参数:
第一种动态参数:
定义第一种动态参数需要在参数前面加上一个 * 号,把接收过来的实际参数当作一个元组,每一个参数都是元组中的一个元素。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def ret(*args): 4 print(args) 5 print(type(args)) 6 ret(11,22,33,44)
运行结果:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def ret(**kwargs): 4 print(kwargs) 5 print(type(kwargs)) 6 7 ret(k1=123,k2=456)
运行结果:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def ret(*args,**kwargs): 4 print(args,type(args)) 5 print(kwargs,type(kwargs)) 6 7 ret(11,22,33,k1=123,k2=456)
运行结果:
问题:
如果实际参数本身就是元组和字典,那么将会发生什么?
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def ret(*args,**kwargs): 4 print(args) 5 print(kwargs) 6 7 tu = (11,22,33) 8 dic = {"k1":123,"k2":456} 9 10 # tu 和 dic 都存到了 agrs 里 11 ret(tu,dic) 12 13 print("--------" * 8) 14 15 # tu 存到 args 里, dic 存到 kwargs 里。 16 ret(*tu,**dic)
运行结果:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def ret(a,b,c): 4 print(a) 5 print(b) 6 print(c) 7 8 t1 = (11,22,33) 9 10 #将 t1 拆分成三个元素,分别传递给a,b,c 11 ret(*t1)
也存在对字典的参数解包,如下:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 def ret(a,b,c): 4 print(a) 5 print(b) 6 print(c) 7 8 dic = {"a":11,"b":22,"c":33} 9 10 ret(**dic)
运行结果:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 s1 = "{0} is {1}" 4 ret = s1.format(11,22) 5 print(ret) 6 7 print("------" * 8) 8 9 s2 = "{0} is {1}" 10 li = [33,44] 11 ret1 = s2.format(*li) 12 print(ret1)
运行结果:
两个 * 的:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 s1 = "{name} is {age}" 4 ret = s1.format(name="baidu",age=18) 5 print(ret) 6 7 print("------" * 8) 8 9 s2 = "{name} is {age}" 10 dic = {"name":"baidu","age":18} 11 ret1 = s2.format(**dic) 12 print(ret1)
运行结果:
lambda表达式 :
lambda表达式就是简单函数简便的表示方式。
在语法上,只能有一个单独的表达式,不用写return,返回值就是该表达式的结果。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #普通函数 4 5 def ret(a,b): 6 return a+b 7 ret1 = ret(9,1) 8 print(ret1) 9 10 print("-------" * 8) 11 12 #lambda表达式 13 14 ret = lambda a,b:a+b 15 ret2 = ret(9,1) 16 print(ret2)
运行结果:
标签:splay 对象 逗号 接收 面向对象 实参 就会 将不 大数
原文地址:http://www.cnblogs.com/canyev/p/6414429.html