python 函数和函数名的应用
一、函数
1.函数定义
def 关键字 -- 定义
func 函数名 -- 和变量定义规则一样
()必须要写格式
: 声明语句结束
def my_len():
函数体
def func(a:int,b:str):
print(a,b)
func(1,2)
2.函数的好处
1.减少代码重复性(冗余)
2.代码可读性高
3.将功能进行封装(造工具)
3.调用函数
函数名+()
多次调用就是执行多次
可以循环使用
def func():
print("test")
func()
4.函数的返回值
return 的内容返回给了函数的调用
return 返回一个内容(就是内容本身) 可以返回任意类型
return下方的代码不执行,终止这个函数
return 终止函数,切记不能终止循环
return 返回多个内容的时候是元组形式
return 没有写返回值的时候返回的是None,不写return返回的也是None
5.位置传参
def yue(a,b,c=1): # 形参 c = 1是默认参数
print("test")
yue(True,(1,),c=3) # 实参 位置参数 > 默认参数
函数的参数
形参:函数定义的时候叫做形参
位置参数
默认参数
混合参数
实参:函数调用的时候叫做实参
位置参数
关键字参数
混合参数
传参:将实参传递给形参的过程叫做传参
6.函数的动态函数
*args,**kwargs(能够接收函数的位置参数和动态的关键字参数)
定义阶段(*args,**kwargs) 聚合
*args -- tuple
**kwargs -- dict
使用阶段*args,*kwargs打散
*args - 源数据类型
*kwargs - 打散的是字典的键
优先级:位置 > 动态位置 > 默认 > 动态关键字
lst = [12,23,323,32,32,4]
def func(*args):
print(*args)
func(lst[0],lst[1]) # 笨的方法
func(*lst)
7.函数的注释
"""
每次写函数的时候需要写注释
函数名.__doc__ 查看函数的注释
函数名.__name__ 查看函数的名字
"""
8.名称空间
内置空间:python解释器自带的
全局空间:当前文件(.py文件)
局部空间:函数体开辟的空间
加载顺序:内置>全局>局部
取值顺序:局部>全局>内置
作用域:
全局作用域:内置+全局
局部作用域: 局部
9.函数嵌套
函数中套函数
函数嵌套调用
函数嵌套参数的传递
函数嵌套返回值的传递
10.global nonlocal
global:修改全局空间的变量对应的值
nonlocal:在外层的函数中,修改局部空间的变量值,完全不涉及全局变量,只修改离他最近的一层,最近的一层没有变量继续向上找,直到找到最外层函数
三元运算符
a = 10
b = 20
c = a if a > b else b
变量名 = 条件成立的结果 条件 条件不成立的结果
二、函数名的应用
1.函数名指向的是函数的内存地址,加上()就执行这个函数
func()
2.函数名就是一个变量
age1 = 12
age2 = age1
age3 = age2
print(age3)
def fuc():
print(666)
f1 = fuc
f2 = f1
f2()
f1()
3.函数名可以作为容器类类型的元素
def func1():
print('in func1')
def func2():
print("in func2")
def func3():
print("in func3")
lst = [func1,func2,func3]
for i in lst:
i()
4.函数名可以作为函数的实参。
def func1():print("in func1")
def func2(argv):
argv()
print('in func2')
func2(func1)
5.函数名可以作为函数的返回值
def func1():
print("in func1")
def func2(argv):
print("in func2")
return argv
ret = func2(func1)
ret()
python 函数和函数名的应用的更多相关文章
- python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包
楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...
- python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域
复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参: -- 形参:在函数定义时()中出现的参数 ...
- python中通过字符串名来调用函数
强调:eval()函数功能虽然强大,但是也很危险,这个方法需要慎重使用. 利用python中的内置函数 eval() ,函数说明: def eval(*args, **kwargs): # real ...
- python基础之函数名的使用,闭包以及迭代器
内容梗概: 1. 函数名的使⽤用以及第⼀一类对象 2. 闭包 3. 迭代器 1.函数名一. 函数名的运⽤.函数名是一个变量, 但它是⼀个特殊的变量, 与括号配合可以执行函数的变量.1.1 函数名的内存 ...
- python基础(13):函数名的使用、第一类对象、闭包、迭代器
1. 函数名的运用 函数名是⼀个变量,但它是⼀个特殊的变量,与括号配合可以执⾏函数的变量. 1.1 函数名的内存地址 def func(): print("呵呵") print(f ...
- Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器
Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器 一丶关键字:global,nonlocal global 声明全局变量: 1. 可以在局部作用域声明一 ...
- Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归
Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f ...
- Python使用property函数定义的属性名与其他实例变量重名会怎么样?
首先如果定义的属性名与该属性对应的操作方法操作的实例对象同名就会触发无穷的递归调用,相关部分请参考<Python案例详解:使用property函数定义与实例变量同名的属性会怎样?> 但如果 ...
- Python函数二(函数名,闭包,迭代器)之杵臼之交
函数名的使用: 函数名可以作为值,赋值给变量. 函数名可以作为参数传参给函数. 函数名可以作为返回值. 函数名可以作为元素存储在容器里. 闭包:在嵌套函数内,使用外层局部变量(非全局变量)就是一个闭包 ...
随机推荐
- 跟着大彬读源码 - Redis 3 - 服务器如何响应客户端请求?(下)
继续我们上一节的讨论.服务器启动了,客户端也发送命令了.接下来,就要到服务器"表演"的时刻了. 1 服务器处理 服务器读取到命令请求后,会进行一系列的处理. 1.1 读取命令请求 ...
- Object.toString()打印“地址”的原理
Object.toString()打印"地址"的原理 @(java) 首先,打印的绝不是地址 public native int hashCode(); public boolea ...
- Docker笔记(三):Docker安装与配置
原文地址:http://blog.jboost.cn/2019/07/14/docker-3.html Docker分为Docker CE社区免费版与Docker EE企业收费版.Docker EE主 ...
- 《ElasticSearch6.x实战教程》之准备工作、基本术语
第一章-准备工作 工欲善其事必先利其器 ElasticSearch安装 ElasticSearch6.3.2下载地址(Linux.mac OS.Windows通用,下载zip包即可):https:// ...
- spark 源码分析之十六 -- Spark内存存储剖析
上篇spark 源码分析之十五 -- Spark内存管理剖析 讲解了Spark的内存管理机制,主要是MemoryManager的内容.跟Spark的内存管理机制最密切相关的就是内存存储,本篇文章主要介 ...
- [原创]Greenplum数据库集群实践
GreenPlum实践 ============================================== 目录: 一.安装环境准备 二.GP数据库安装 三.集群添加standby节点 四. ...
- pytorch实现yolov3(5) 实现端到端的目标检测
torch实现yolov3(1) torch实现yolov3(2) torch实现yolov3(3) torch实现yolov3(4) 前面4篇已经实现了network的forward,并且将netw ...
- app组件跳转到页面
这段时间根据项目需求,开发一个app的一个页面,这里用到了从组件跳转到index文件下的.vue页面.第一次接触,参考了同事的文档,写出来了,这里记录一下. 文档链接: https://www.yuq ...
- C 单链表 实现约瑟夫环
list.h #ifndef _List_H #define _List_H typedef int ElementType; struct Node; typedef struct Node *Pt ...
- git commit规范化实践
最近从svn转到git进行代码版本控制,今天了解了git commit规范化的一些知识后,写此文章记录下配置过程. 环境 编辑器使用的是vscode,项目框架是vue3.0 规范化工具 规范化git ...