在这个用例中,我们要讨论的是将参数传递给函数的问题
我所使用的python版本为3.3.2
对于函数:
def fun(arg):
print(arg)
def main():
fun('hello,Hongten')
if __name__== '__main__':
main()
这里打印的信息为:
hello,Hongten
对于下面的用例:
def fun(a=1, b=None, c=None,*args):
print('{0},{1},{2},{3}'.format(a, b, c, args))
def main():
fun(a='one')
fun('one')
if __name__== '__main__':
main()
当传递的参数为:fun(a='one') 和 fun('one') 都是将值复制给参数a,两种传递参数的效果是一样的:
one,None,None,()
one,None,None,()
当然我们也可以给参数:b,c,*args赋值
如:
def fun(a=1, b=None, c=None,*args):
print('{0},{1},{2},{3}'.format(a, b, c, args))
def main():
fun('one',1,2,('hongten'))
if __name__== '__main__':
main()
这样我们就给参数:b,c,args赋上了值
运行效果:
one,1,2,('hongten',)
在上面的例子中,我们不能绕过参数*args前面的参数a、b、c复制到*args中:
如:
def fun(a=1, b=None, c=None,*args):
print('{0},{1},{2},{3}'.format(a, b, c, args))
def main():
fun(args=('hongten'))
if __name__== '__main__':
main()
运行效果:
Traceback (most recent call last):
File "E:/Python33/python_workspace/test_fun.py", line 21, in <module>
main()
File "E:/Python33/python_workspace/test_fun.py", line 18, in main
fun(args=('hongten'))
TypeError: fun() got an unexpected keyword argument 'args'
但是对于参数:a,b,c,可以这样赋值
如:
def fun(a=1, b=None, c=None,*args):
print('{0},{1},{2},{3}'.format(a, b, c, args))
def main():
fun(c=('hongten'), b=2, a=[1,2,3])
if __name__== '__main__':
main()
运行效果
[1, 2, 3],2,hongten,()
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ mongodb数据库适合什么?11/11
- ♥ python len() 函数的作用是什么?08/15
- ♥ python日志记录的常见解决方案01/08
- ♥ 如何在 Python IDLE 中显示行号10/20
- ♥ 如何在 Python 3.8 中编写数字猜谜游戏11/09
- ♥ python如何加载Pillow包12/31
内容反馈