• python中函数定义之实参、形参


      一般在函数的定义中,会有一类变量---形参,它是函数完成其工作的一项信息。实参往往是调用函数时传递给函数的信息。我们在调用函数时,将要让函数使用的信息放在括号内。例如定义一个函数def greet_user(username):,在调用greet_user('jeese')中,将实参'jeese'传递给了函数greet_user(),这个值被存储在形参username中。

      传递实参有很多种方式,下面了解一下他们。

    1、位置实参

       在调用函数时,每个实参要与定义中的形参关联起来。最简单的关联方式就是基于实参的顺序,这种关联方式就叫做位置实参。实参的顺序要与定义中的形参顺序一致。

    1 def describe_pet(animal_type,pet_name):
    2     print('
    I have a '+animal_type+'.')
    3     print('My '+animal_type+"'s name is "+pet_name.title()+'.')
    4 
    5 describe_pet('hamster','harry')

      在调用describe_pet()函数时,要按照形参的顺序提供一个动物的类型和一个名字。。平时根据需要可以多次调用。

      运行结果:

    1 I have a hamster.
    2 My hamster's name is Harry.

      如果调用函数中给出的实参顺序和定义中的形参不同,就会出现令人啼笑皆非的结果。如下:

    1 describe_pet('harry','hamster')

    I have a harry. 2 My harry's name is Hamster.

      这种情况的出现就是实参顺序不正确,按照这种方式,实参‘harry’会被存储到形参animal_type中;同理,'hamster'将存储到形参pet_name中,结果就是我们得到了上面的名为Hamster的harry。

      所以切记,位置实参一定要与形参顺序一致。

    2、关键字实参

      关键字函数实参是传递给函数的名称-值对。关键字实参让你无需考虑函数调用中的实参顺序,还能明确各个值的用途,得到的结果是一样的。

    1 describe_pet(animal_type='hamster',pet_name='harry')
    2 describe_pet(pet_name='harry',animal_type='hamster')
    3 
    4 I have a hamster.
    5 My hamster's name is Harry.

    3、默认值

      在函数定义编写的时候,可以给形参指定默认值。当在调用函数中给形参提供了实参时,python将使用指定的实参值,否则就是使用默认的形参值。使用形参给定的默认值时,调用函数时可以省略相应的实参。

    1 def describe_pet(pet_name,animal_type='dog'):
    2     print('
    I have a '+animal_type+'.')
    3     print('My '+animal_type+"'s name is "+pet_name.title()+'.')
    4 
    5 describe_pet('willie')

      运行结果:

    1 I have a dog.
    2 My dog's name is Willie.

      这个函数的编写改变了形参的顺序,由于带有默认值的animal_type不需要在函数调用中指定类型,因此函数只涉及到pet_name需要给出名字。鉴于python依然将该实参认为是位置实参,若需要给出函数名字,则这个名字的实参将关联到函数定义中的第一个形参,故而将带默认值的形参放在后面。

      若函数调用中,给animal_type重新赋了新的值,则原来的默认值即可忽略。

    学三境: 一境:昨夜西风凋碧树,独上高楼,望尽天涯路; 二境:衣带渐宽终不悔,为伊消得人憔悴; 三境:众里寻‘它’千百度,蓦然回首,那斯却在,灯火阑珊处。
  • 相关阅读:
    26_多线程_第26天(Thread、线程创建、线程池)
    25_IO_第25天(Properties、序列化流、打印流、CommonsIO)
    24_IO_第24天(转换流、缓冲流)
    23_IO_第23天(字节流、字符流)
    22_IO_第22天(File、递归)
    PHP常用函数
    PHP后台基本语法使用笔记
    java笔记
    springmvc常用注解标签详解
    Java:全局变量(成员变量)与局部变量
  • 原文地址:https://www.cnblogs.com/cpl9412290130/p/9404514.html
Copyright © 2020-2023  润新知