本我我们要讨论的是关于函数的传参问题
对于函数:
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,()
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python从键盘输入几个整数09/22
- ♥ python如何求偶数之和?08/18
- ♥ Python选择排序算法的性能分析10/11
- ♥ python如何从键盘输入数据?08/16
- ♥ 从零基础学习python编程需要多长时间09/02
- ♥ 如何在python3中创建一个新项目11/10
内容反馈