• 技术文章 >常见问题 >Python常见问题

    python的函数如何接收参数

    silencementsilencement2019-12-20 17:57:33原创5463

    在这个用例中,我们要讨论的是关于函数的传参问题

    python学习网,大量的免费python视频教程,欢迎在线学习!

    对于函数:

    def fun(arg):
        print(arg)
          
    def main():
        fun('hello,Hongten')
          
    if __name__== '__main__':
        main()

    当我们传递一个参数给fun()函数,即可打印出传递的参数值信息。(更多学习内容,请点击Python学习网

    这里打印的信息为:

    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函数重载吗 下一篇:python怎么导入模块

    相关文章推荐

    • python程序执行完不自动退出• python如何使print不换行输出

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网