• python学习笔记之函数的参数


    函数的参数有位置参数和关键字参数,位置参数一定要在关键字参数的前面,位置参数的优先级是高于关键字参数的,否则会报错

    def my_abs(a,b):
    print(a)
    print(b)

    my_abs(10,1)
    以上函数运行结果为
    10
    1
    上面的传入参数是典型的位置参数,我们将之更改为位置加关键字参数
    def my_abs(a,b):
    print(a)
    print(b)

    my_abs(10,b=3)
    以上函数运行结果为
    10
    3
    似乎也没问题,那我们用以下方式运行下,把关键字参数放在位置参数前面
    def my_abs(a,b):
    print(a)
    print(b)

    my_abs(b=10,3)
    然而报错了,看下报错信息

    File "C:/Users/Administrator/PycharmProjects/untitled/funca.py", line 5
    my_abs(b=10,3)
    ^
    SyntaxError: positional argument follows keyword argument

    关键字参数必须跟随在位置参数后面! 因为python函数在解析参数时, 是按照顺序来的, 位置参数是必须先满足, 才能考虑其他可变参数.

    另外还有可变参数

    def my_abs(*a):
    print(a)

    my_abs(1, 2, 3)
    返回结果为
    (1, 2, 3)
    是一个元组
    另外可以参考下以下函数可以发现什么?
    def calc(*numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
        return sum
    这样多个参数没问题,如果传入是一个元组或者列表呢?可以这样子
    Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去
    >>> nums = [1, 2, 3]
    >>> calc(*nums)
    14

    *nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。
    其余的以后再总结
    感谢廖雪峰的python教程

  • 相关阅读:
    设计模式--工厂模式
    docker
    学习的网址
    showslow小记
    .Net学习线路图
    《掌握软件测试九大技术》
    Apache和Tomcat
    Visual Studio 2017 更新到15.3后 提示错误:包含了重复的“Compile”项 的解决方法
    Asp.Net Core MVC项目实现多语言(Globalization/Localization)
    7月23日 会议纪要(项目有重要变动)
  • 原文地址:https://www.cnblogs.com/hh2737/p/8144988.html
Copyright © 2020-2023  润新知