温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中函数参数如何传递

发布时间:2021-11-18 10:43:17 来源:亿速云 阅读:127 作者:小新 栏目:开发技术

这篇文章主要介绍了Python中函数参数如何传递,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    函数参数如何传递

    key-value方式传递参数:

    下面是非常常见的传递方式,参数名写直白,写死了:

    def show_info(name, title):
        print("姓名为:",name)
        print("职称为:",title)

    我们在使用的时候可以用以下的方式:

    show_info('雷学委', '大学生Python学习社区长')
    show_info(name='雷学委', title='持续学习协会会长')

    可以写成这样,使用两个*,这样非常灵活,但是缺点也是明显的(结构灵活有时候需要判断是否漏传,直接取容易出错)

    def show_info_v2(**kv_dict):
        print("姓名为:", kv_dict['name'])
        print("职称为:", kv_dict['title'])
    show_info_v2(name='雷学委', title='大学生Python学习社区长')

    下面是效果,看起来一样的。

    Python中函数参数如何传递

    动态长度参数传递

    通常使用*加参数名。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2021/10/24 11:39 下午
    # @Author : LeiXueWei
    # @CSDN/Juejin/Wechat: 雷学委
    # @XueWeiTag: CodingDemo
    # @File : func_call.py
    # @Project : hello
    def show_info(name, title):
        print("姓名为:", name)
        print("职称为:", title)
    show_info('雷学委', '大学生Python学习社区区长')
    show_info(name='雷学委', title='持续学习协会会长')
    def show_info_v2(name, title, *info):
        print("姓名为:", name)
        print("职称为:", title)
        print("其他评价:", info)
    show_info_v2('雷学委', '大学生Python学习社区区长', "热爱技术", "热爱生活")

    运行效果如下:

    Python中函数参数如何传递

    参数是否会被函数攥改?

    我们看看下面的程序即可:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time : 2021/10/24 11:39 下午
    # @Author : LeiXueWei
    # @CSDN/Juejin/Wechat: 雷学委
    # @XueWeiTag: CodingDemo
    # @File : func_call.py
    # @Project : hello
    def compute_v1(list):
        sum = 0
        for x in list:
            sum += x
        list = list + [sum]
        print("新地址:", id(list))
        return sum
    def compute_v2(list):
        sum = 0
        for x in list:
            sum += x
        list[0] = list[0] * 100
        return sum
    _list = [1, 2, 3, 4, 5]
    print("调用计算函数v1之前:", _list)
    print("调用计算函数v1之前内存地址:", id(_list))
    print(compute_v1(_list))
    print("调用计算函数v1之后:", _list)
    print("调用计算函数v1之后内存地址:", id(_list))
    _list = [1, 2, 3, 4, 5]
    print("调用计算函数v2之前:", _list)
    print("调用计算函数v2之前内存地址:", id(_list))
    print(compute_v2(_list))
    print("调用计算函数v2之后:", _list)
    print("调用计算函数v2之后内存地址:", id(_list))

    这里两个compute函数,一个修改参数引用地址,一个并没有修改参数引用而是修改了引用内存空间的关联地址(一个变量)的值。

    可以说它们都成功了。但是外面的_list 的地址是任何时候都不会被修改的,除非赋值新地址(也就是在调用v2之前重新复制那次)

    下面是运行结果:

    Python中函数参数如何传递

    感谢你能够认真阅读完这篇文章,希望小编分享的“Python中函数参数如何传递”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI