博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实参和形参
阅读量:4572 次
发布时间:2019-06-08

本文共 1598 字,大约阅读时间需要 5 分钟。

今日内容

实参和形参:

'''实参:调用函数,在括号内传入的实际值,值可以为常量、变量、表达式或三者的组合*****形参:定义函数,在括号内声明的变量名,用来接受外界传来的值,外部提前产生了的变量,内部可以使用''''''注:形参随着函数的调用而产生,随着调用结束而销毁'''

 

实参:

'''位置实参:不用明确形参名的传参方式,一定按照位置给形参传值关键字实参:必须明确形参名字与值为形参传值,可以不用按照位置*****注:混用1.关键字实参必须出现在位置实参后2.多个位置实参还是按照位置传参3.关键字实参为没有从位置实参拿到值的形参传值,可以不用按照指定顺序'''def fn2(a, b, c, d, e, f):    print(a, b, c, d, e, f)fn2(10, 20, 30, e=100, f=500, d=200)

位置形参的范畴:

    • 位置形参
# positional argumentdef fn(a, b, c):    print(a, b, c)    # 位置形参可以由 位置实参 与 关键字实参 来传值fn(10, 20, 30)fn(a=10, b=20, c=30)
  • 默认形参的
    def fn(a=10,b=20):    print(a, b)    # 默认形参可以由 位置实参 与 关键字实参 来传值,还可以不用传值(采用自身默认值)fn()fn(20, 30)fn(a=200, b=300)fn(100)  # 就给a传fn(b=100)  # 就给b传# 混用# 位置形参与默认形参同时存在,默认形参必须在后def fn1(a,b,c=10,d=20):    print(a, b, c, d)# 位置形参必须传值,默认形参分情况传值fn1(100, 200, d=1000)
  • 可变长形参
    # 可变长形参会以 元组 形式接受 位置形参与默认形参未接受完的 所有传入的位置实参,用索引来取第几个# 可变长形参只能由 位置实参 来传值  *****def fn(a, b=10, *args):    print(a, b)    print(args)        # 小细节:可变长形参只能接受位置实参的值,位置实参还必须在关键字实参前,#       导致默认形参只能由位置实参来传值fn(1, 20, 100, 200) # 1给a  20给b,不能用b=20传  100,200给args

关键字形参范畴:

# 前提:出现在 * 之后的形参def fn(a, b=10, *, c, d=20, e):    pass# c,d,e都是出现在*之后,都是关键字形参,由于必须由 关键字实参 来传值,没有顺序的强行要求# 可变长关键字形参:用来接收没有被关键字形参接收完的关键字形参,也只能由关键字实参来传值# 用字典来存放数据def fn(**kwargs):    print(kwargs)fn(a=10,b=20)  # {'a': 10, 'b': 20}dic = {
'x': 100, 'y': 200}fn(**dic) # {'x': 100, 'y': 200}

参数总结:

def fn(a, b, c=10, *args, d, e=20, f, **kwargs):    pass# 位置形参:a、b# 默认形参:c# 可变长位置形参:args# 无初值关键字形参:d、f# 有初值关键字形参:e# 可变长关键字参数:kwargs# 1.位置形参与默认形参: 能用 位置实参 关键字实参 传值# 2.可变长位置形参:只能 位置实参 传值# 3.所以关键字形参:只能 关键字实参 传值

转载于:https://www.cnblogs.com/tyler-bog/p/10623228.html

你可能感兴趣的文章
将扁平化的JSON属性转换为嵌套的JSON
查看>>
[中英对照]Introduction to DPDK: Architecture and Principles | DPDK概论: 体系结构与实现原理...
查看>>
读黑客与画家啦
查看>>
JSONCPP使用
查看>>
MAC OSX 10.10 下启用自带的Apache的rewrite模块
查看>>
Jenkins持续集成iOS项目
查看>>
对卷积的定义和意义的通俗解释
查看>>
GlusterFS缺陷
查看>>
(づ ̄3 ̄)づ╭❤~
查看>>
java程序设计第二次作业
查看>>
idea使用generatorconfig生成
查看>>
$.ajax()方法详解
查看>>
请求映射处理方式
查看>>
自定义AppSession
查看>>
【LeetCode OJ 268】Missing Number
查看>>
html乱码怎问题
查看>>
备忘一下,就这么写的
查看>>
清除wine程序列表
查看>>
关于 iOS 10 中 ATS / HTTPS /2017 问题
查看>>
利用adaboost元算法提高分类性能
查看>>