首页 > 其他 > 详细

第二十三篇 函数的调用和函数参数的应用

时间:2019-05-31 10:22:58      阅读:131      评论:0      收藏:0      [点我收藏+]

第二十三篇 函数的调用和函数参数的应用

一.函数的调用

1、什么是函数的调用

  • 1.在遇到应用场景时将函数拿来使用就是函数的调用
  • 2.调用函数,会执行函数体代码,直到碰到return或者执行完函数体内所有代码结束
  • 3.函数运行完毕所有代码,如果函数体不写return,则会返回None

2、为何需要调用函数

  • 使用函数的功能

3、函数调用的三种形式

def func(x,y)
    代码块

#1.直接调用
func(1,2)

#2.用变量接收返回值
result = func(1,2)

#3.函数内调用函数
func1(func(1,3))

二.函数参数的应用

1、形参和实参

1 形参

  • 在函数定义阶段括号内定义的参数,称为形式参数,就是形参,本质就是变量名
  • 形参只具有描述的功能,没有实际的意义
def func(x):
    code
# x就是形参

2 实参

  • 在函数调用阶段括号内传入的参数,称为实际参数,简称实参,本质就是变量的值
  • 实参具有实际的意义
def func(x):
    code
    
func(2)  # 2就是实参

2、位置参数

1 位置形参

  • 1 在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参
  • 2 特点:按照位置定义的形参,都必须被传值,不能多也不能少
def func(x,y,z):
    code
# x,y,z就是位置形参

2 位置实参

  • 1 在函数调用阶段,按照从左到右的顺序依次定义的实参,称为位置实参
  • 2 特点:按照位置对应的形参依次传值
def func(x,y,z):
    code
    
func(1,2,3)  # 1,2,3就是位置实参

3、关键字实参

  • 1 在调用函数时,按照key = value的形式为指定的参数传值,称为关键字实参
def func(x,y):
    代码块
    
func(y=1,x=2)    # y = 2, x = 1 这种写法就是关键字实参
  • 2 特点:可以打破位置的限制,但仍能为指定的形参赋值

  • 3 注意:

    • 1 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边
    • 2 可以混用位置实参和关键字实参,但不能对一个形参重复赋值
    def func(x,y):
        代码块
    
    func(1, y=2)
    func(y=2, 1)  # SyntaxError: positional argument follows keyword argument,位置参数必须在前
    func(1, x=1)  # SyntaxError: invalid syntax,无效语法,不能给位置形参重复赋值

4、默认形参

  • 1 在定义阶段就已经被赋值
def func(x,y=1):
    代码块
    
func(2)
  • 2 特定:在定义阶段就已经被赋值,意味着在调用时可以不用为其赋值

  • 3 注意:

    • 1 位置形参必须放在默认形参的左边
    • 2.默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定可
    • 3.默认参数的值通常应该是不可变类型
    m = 6
    def func(x=m):
        print(x)
    
    m = 666
    func()   # 6
    func(888) # 888 位置实参也能覆盖默认形参
    func(x=666)  # 666 关键字实参可以覆盖默认形参
    # 默认形参也可以用可变类型,但是尽量不要这样用
    def f(y={'name':'king'}):
        print(y)
    
    f()  # {'name': 'king'}

5、总结

  • 1.实参的应用取决于个人习惯
  • 2.形参的应用:
    • 1.大多数调用值不一样、变化较大时,就应该将形参定义成位置形参
    • 2.大多数调用值一样、变化较小时,就应该将形参定义成默认形参

第二十三篇 函数的调用和函数参数的应用

原文:https://www.cnblogs.com/itboy-newking/p/10953482.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!