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

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

一、函数的使用原则:

函数的使用原则分为2个阶段

1.定义阶段:只检测语法,不执行函数体代码

2.调用阶段:会触发函数体代码的运行

先定义后调用

二、函数的定义与调用形式

函数定义的3种形式:

1.有参函数

def func(xxxxx)

pass

func(1)

2.无参函数

def func()

pass

func()

3.空函数   写框架

def func()

pass

函数调用的3种形式:

语句形式

表达式

将函数的调用当作参数传给另外一个函数

三、函数的返回值

注意点:

     1.函数的返回值没有类型限制

     2.函数的返回值没有个数限制

1.返回多个值时,返回值用逗号隔开,返回的是元组

2.返回单个值时,返回的是值本身

3.返回0个值或者没有return,返回none

return除了有返回值的功能,还有结束函数的功能

四、函数参数的使用

1.函数的参数分为两大类

形式参数(刑参)

实际参数(实参)

ps: 在调用函数阶段会将实参(值)的值绑定给形参(变量名),这种绑定关系只在调用函数时生效,在函数执行完毕后就会解除绑定

2.细分

      1.位置参数

位置形参:在定义阶段,按照从左到右的顺序依次定义的形参

特点:必须被传值,多一个不行少一个也不行

位置实参:这调用阶段将值从左到右传给形参

特点:与形参一一对应

     2.关键字实参

这调用阶段,按照k,v的形式定义的实参

特点:可以打乱顺序,也能将值传给形参

实参的形式可以是位置实参与关键字实参混合使用,但是必须遵循原则

1.位置实参必须放在关键词实参的前面

2.不能对一个形参重复传值

     3.默认形参

在定义阶段就已经赋值

特点:1.定义阶段已经赋值,意味着可以不用传值

2.位置形参必须放在默认形参的前面

3.可以对默认形参重新赋值

4.默认形参的值通常是不可变类型

     4.可变长参数

指的是在调用阶段,实参的个数不固定

*--->溢出的位置实参

**--->溢出的关键字实参

*的用法:

在形参前加*,*会将溢出的实参以元组的形式表示

在实参前加*,但凡碰到实参前加*的,先将实参打散成对应的位置实参再与形参对应

**的用法:

在形参前加**,**会将溢出的关键词实参以字典的形式表示

在实参前加**,但凡碰到实参前加*的,先将实参打散成对应的关键词实参再与形参对应

*与**的应用:

def index(name,age,sex):

print('index=====>',name,age,sex)

# 会将wrapper函数接收的参数格式原封不动地转嫁给其内部的index函数,必须要遵循的是index的参数规则

def wrapper(*args,**kwargs): #args=('egon',) kwargs={'sex':'male','age':18}
# print(args)
# print(kwargs)
index(*args,**kwargs) #index(*('egon',),**{'sex':'male','age':18}) #index('egon',sex='male',age=18)

# wrapper(1,2,3,4,5,a=1,b=2,c=3)

wrapper('egon',sex='male',age=18)

转载于:https://www.cnblogs.com/zhanggq/p/9700504.html

你可能感兴趣的文章
Linux创建用户
查看>>
github中markdown语言的使用规则
查看>>
clean-css 安装 使用
查看>>
Java设计模式(Design Patterns In Java)读书摘要——第1章 绪论
查看>>
Linux下Nginx安装
查看>>
LVM扩容之xfs文件系统
查看>>
Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
查看>>
2010年ImagineCup,我们共同走过
查看>>
代码片段收集
查看>>
vue-cli3创建项目时报错
查看>>
输入1-53周,输出1-53周的开始时间和结束时间
查看>>
实验二
查看>>
shell——按指定列排序
查看>>
crash 收集
查看>>
Oracle数据库索引使用及索引失效总结
查看>>
507 LOJ 「LibreOJ NOI Round #1」接竹竿
查看>>
UI基础--烟花动画
查看>>
hibernate 批量插入数据
查看>>
2018. 2.4 Java中集合嵌套集合的练习
查看>>
精通ASP.NET Web程序测试
查看>>