zoukankan      html  css  js  c++  java
  • python3函数的参数

    函数的定义能简化代码的逻辑,对于函数的调用者来说,只需要知道如何正确的传递参数,以及知道函数将返回什么值就可以了,而函数内部的复杂逻辑被封装起来,调用者不必了解。

    位置参数

    调用函数时,传入实参的值按照位置顺序以此赋给形参。

    def power(x, n):
        s = 1
        while( n ):
            n = n - 1
            s = s * x
        return s

    上面这个函数中的x和n就是位置参数。

    默认参数

    python的函数同时还允许你给函数的参数设置默认值,当调用者没有给出参数的值时自动使用默认值。设置默认参数时要注意,必选参数必须在默认参数之前。

    def power(x, n = 2):
        s = 1
        while( n ):
            n = n - 1
            s = s * x
        return s

    注意:默认参数必须指向不可变对象,否则会发生不可预知的错误。

    可变参数

    在Python函数中还可以定义可变的参数,参数的个数可以是任意个,定义参数时,只需要在参数的前面加一个 * 符号即可。

    def N(×num):
        s = 1
        for n in num:
            s = s * n
        return s
    
    A = N(1,2,3,4,5,6,7,8,9,10) #A = 3628800

    关键字参数

    python的关键字参数允许你传入任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。传入关键字参数的时候必须指定参数的名称(参数名由调用者自行取定),否则该参数会被认为是位置参数从而报错。

    def person(name, age, **kw):
        print('name:', name, 'age:', age, 'other:', kw)
    
    preson("J",33,city = "Beaijing",job = "Engineer")

    命名关键字参数

    命名关键字参数:调用者传递参数必须给出参数名,而且参数名是函数定义者预先定义好的。

    def person(name, age, *, city, job):
        print(name, age, city, job)
    
    #如果函数的参数中有可变参数,那么后面的命名关键字参数就不需要 * 符号来定义了
    def person(name, age, *args, city, job):
        print(name, age, args,city, job)

    总结:对于任意函数,都可以通过类似func(*args,**kw)的形式调用它,无论它的参数形式是怎样的。

  • 相关阅读:
    并发编程(线程)
    并发编程(进程)
    并发编程(操作系统的介绍)
    模块与包
    网络编程
    Django项目的创建与管理和pycharm与Github的秘密
    python解释器配置和python常用快捷键
    代码的调试.运行
    57. 三数之和
    1347. 尾随零
  • 原文地址:https://www.cnblogs.com/jxc321/p/9249725.html
Copyright © 2011-2022 走看看