这篇文章主要介绍“Python函数参数传递以及变量作用域详解”,在日常操作中,相信很多人在Python函数参数传递以及变量作用域详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python函数参数传递以及变量作用域详解”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1.传递多个参数
使用*号,表示函数接受多个参数
>>> def f(*args):print args>>> f(1)(1,)>>> f(1,2,3)(1, 2, 3)>>> f()()>>> f(1,2)(1, 2)
2.传递字典参数
使用**号,表示传递的是字典参数
>>> def f1(**args):print args>>> f1(a=1,b=2){'a': 1, 'b': 2}
3.将函数名作为参数传递
#coding=utf-8 #用来支持中文,=号前后不能有空格#minmax.pydef minmax(test,*args): res=args[0] for arg in args[1:]: #循环args中内容副本 if test(arg,res): res=arg return resdef lessthan(x,y):return x<ydef grtrthan(x,y):return x>yprint minmax(lessthan,4,7,9,22,2,18)print minmax(grtrthan,4,7,9,22,2,18)
4.传递混合参数
>>> def f2(a,*pargs,**kargs):print a,pargs,kargs>>> f2(1,2,3,4,5,x=11,y=12)1 (2, 3, 4, 5) {'y': 12, 'x': 11}
5.练习--字符串∪和∩运算
>>> def intersct(*args):res=[]for x in args[0]:for other in args[1:]:if x not in other:breakelse:res.append(x)return res>>> def union(*args):res=[]for seq in args:for x in seq:if not x in res:res.append(x)return res>>> s1,s2,s3="SPAM","SCAM","SLAM">>> intersct(s1,s2)['S', 'A', 'M']>>> union(s1,s2)['S', 'P', 'A', 'M', 'C']
6.类成员变量和实例变量
>>> class C: X = 33 def m(self): X = 44 self.X = 55>>> obj = C()>>> print obj.X33>>> obj.m()>>> print obj.X55>>> C.X33
到此,关于“Python函数参数传递以及变量作用域详解”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!