一、函数

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 函数和函数名的应用的更多相关文章

  1. python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包

    楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...

  2. python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域

    复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参:       -- 形参:在函数定义时()中出现的参数       ...

  3. python中通过字符串名来调用函数

    强调:eval()函数功能虽然强大,但是也很危险,这个方法需要慎重使用. 利用python中的内置函数 eval() ,函数说明: def eval(*args, **kwargs): # real ...

  4. python基础之函数名的使用,闭包以及迭代器

    内容梗概: 1. 函数名的使⽤用以及第⼀一类对象 2. 闭包 3. 迭代器 1.函数名一. 函数名的运⽤.函数名是一个变量, 但它是⼀个特殊的变量, 与括号配合可以执行函数的变量.1.1 函数名的内存 ...

  5. python基础(13):函数名的使用、第一类对象、闭包、迭代器

    1. 函数名的运用 函数名是⼀个变量,但它是⼀个特殊的变量,与括号配合可以执⾏函数的变量. 1.1 函数名的内存地址 def func(): print("呵呵") print(f ...

  6. Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器

    Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器 一丶关键字:global,nonlocal global 声明全局变量: ​ 1. 可以在局部作用域声明一 ...

  7. Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归

    Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f ...

  8. Python使用property函数定义的属性名与其他实例变量重名会怎么样?

    首先如果定义的属性名与该属性对应的操作方法操作的实例对象同名就会触发无穷的递归调用,相关部分请参考<Python案例详解:使用property函数定义与实例变量同名的属性会怎样?> 但如果 ...

  9. Python函数二(函数名,闭包,迭代器)之杵臼之交

    函数名的使用: 函数名可以作为值,赋值给变量. 函数名可以作为参数传参给函数. 函数名可以作为返回值. 函数名可以作为元素存储在容器里. 闭包:在嵌套函数内,使用外层局部变量(非全局变量)就是一个闭包 ...

随机推荐

  1. C语言实现—学生成绩管理系统(Linux下运行)

    开发环境:Linux 开发语言:C 相关文件下载: 码云:https://gitee.com/ikaros-521/c_project/tree/master/%E5%AD%A6%E7%94%9F%E ...

  2. C++学习书籍推荐《Effective C++ 第三版》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)(双色)>前两个版本抓住了全世界无数程序员的目光.原因十分明显:S ...

  3. 网络下载器 迅雷大众版 v7.9.42.5050 精简绿色版

    下载地址:点我 基本介绍 迅雷大众版是一款采用了先进的超线程技术基于网格原理,能够将存在于第三方服务器和计算机上的数据文件进行有效整合,通过这种先进的超线程技术,用户能够以更快的速度从这些第三方节点平 ...

  4. 剑指offer第二版-2.实现单例模式

    面试题2:实现单例模式 题目要求: 设计一个类,只能生成该类的一个实例. /** * 单例模式 * 定义:指实现了特殊模式的类,该类仅能被实例化一次,产生唯一的一个对象 * 应用举例:windows的 ...

  5. 提升布局性能____Making ListView Scrolling Smooth

    listview是一个比较重要的UI组件,一切影响UI的操作,比如适配器从磁盘.网络或者数据库中加载数据的操作,最好都放在子线程中完成.子线程可以使用thread,不过那样比较老土,官方推荐使用Asy ...

  6. BAT的人都是怎么学习的

    不知道你发现没,在技术领域走在前列的人,基本都符合一个条件:保持对新技术的敏感度,还能定期更新自己的技能储备. 要做到这一点,最高效的办法就是直接跟 BAT 等一线大厂取经.说白了,平台足够大,就有更 ...

  7. 个人永久性免费-Excel催化剂功能第39波-DotNet版的正则处理函数

    在很久之前已经开发过的一些自定义函数,未能有详细的讲解,接下来几波中着重对之前开发过的自定义函数进行详细讲解及示例说明,希望能够帮助到普通用户们能顺利使用,此篇介绍为正则表达式函数. 文章出处说明 原 ...

  8. 并发,并行,线程,进程,GIL锁

    1.并发和并行 并发: 同时做某些事,但是强调同一时段做多件事 如:同一路口,发生了车辆要同时通过路面的时间. 并行: 互不干扰的在同一时刻做多件事 如:同一时刻,同时有多辆车在多条车道上跑,即同时发 ...

  9. 端口,OSI7层模型,TCP的三次握手和四次挥手,进度条

    1.端口: 端口是为了将同一个电脑上的不同程序进行隔离 IP是找电脑,端口是找电脑上的程序 MySQL是一个软件,帮助我们在硬盘上进行文件操作,默认端口是3306 Redis是一个软件,帮助我们在内存 ...

  10. vue项目目录结构详解

    项目简介基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next.scss 等最新语言特性.项目包含: 基础库: vue.js.vue-router.vue ...