导图社区 Python函数简介
Python函数简介的思维导图,讲述了概述(内涵、定义、注意)、装饰器(Decorator)、参数(完整语法、参数传递方式、处理)。
JavaSE-JavaEEDB思维导图,包括:Spring、Hibernate框架、struts2框架、js+jquery+ajax、JSP、Servlet(后期补充)、HTTP协议。
Java SE知识思维导图,包括:Java基础语法、Java OOP编程、Java高级特性、JDK8、Eclispe等内容。
Java知识思维导图,包括:1、Java环境及配置;2、语法、数据类型及表达式;3、结构化程序设计;4、数组与字符串;5、类和对象。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
Python函数简介
概述
内涵
对【程序逻辑】进行
结构化or过程化
面向过程的程序设计
基本单元
定义
def
return
随时返回
函数结果
返回形式
无【返回值】
方法
不用return
仅return
不加返回值
返回对象类型
None
一个值/对象
p.s.
若返回多个对象
本质上以【元组】返回
执行到return时
停止执行函数内余下的语句
空函数
pass
占位符
让代码先运行起来
注意
vs
函数的引用
访问
别名变量
函数名
本质上即【变量】
可有多个别名
对同一【函数对象】的引用
函数的调用
函数
可作为【参数】
在函数体内被调用
装饰器
Decorator
在代码运行期间
给函数
动态增加功能
本质上
一个【返回函数】的高阶函数
输入参数
A函数
返回值
不改变函数原貌
形式
@decorator(dec_opt_args)
def func2Bdecorated(func_opt_args): ...
应用
引入日志
增加计时逻辑
检测性能
多个装饰器“堆委”
@deco2(deco_args)
@deco1 def func()
等价于
def func():
func = deco2(deco_args)deco1(func())
参数
完整语法
func(positional_args,keyword_args,
tuple_nonkw_args,*
dict_kw_args)
参数定义的顺序
按传递方式
位置——关键字——包裹位置——包裹关键字
按参数类型
必选——默认——可变——关键字
参数传递方式
位置传递
依次传入参数
位置参数/必选参数
关键字传递
声明了【默认值】的参数
默认参数
方式
参数的名字
提供
对应名字传入
不提供
按顺序依次传入
参数默认值
必须指向【不变对象】
如果需要用到list作为参数
不要直接用
改用None
if L is None: L=[ ]
包裹传递(可变参数)
目的
传入【不定个数】的参数组
元组
非关键字参数
字典
关键字参数
包裹位置参数
非关键字可变长参数(元组)
定义函数
def func(*tuple_name)
封装成元组
任意数量的位置参数
tuple_name
收集所有的参数
根据位置
合并成一个元组(tuple)
使用函数
先组装list/tuple再传入
list/tuple前加*号
直接传入一串值
包裹关键字参数
关键字参数(字典)
def func(**dict_name)
任意数量
封装成【字典】
允许参数
缺失
不按顺序
dict_name
组装成一个字典
先组装dict再传入
dict前加**号
直接传入多个name='value'
解包裹
形如func(
args,* kw)
首先拆解args
按顺序传给
必选参数——默认参数——可变参数(如果还有值剩余)
再拆解kw
传给
,*
用来拆解list/tuple &dict
单个参数
func(*args)
tuple的每一个元素
对应一个【位置参数】
func(**dict)
词典的每个键值对
作为一个【关键字参数】
对比
包裹
定义函数时用
调用函数时用
两个相对独立的过程
处理【参数传递]的两种形式
值传递
基本数据类型
变量传递给函数后
函数在内存中
复制一个新变量
不影响原有变量
指向新的引用对象
指针传递
list
变量传递给函数的是指针
指针指向
序列在内存中的位置
在函数中对list的操作
在原有内存中进行
从而影响原有变量
原引用对象被改变
可以先检查【参数类型]
isinstance()