一、函数

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. Oracle数据库---异常处理

    Oracle异常处理在PL/SQL语句书写时,需要处理的异常-- 不做异常处理时DECLARE v_name emp.ename%TYPE; v_sal emp.sal%TYPE;BEGIN SELE ...

  2. WeUI Picker组件 源代码分析

    前言 由于最近做的一个移动端项目需要使用到类似 WeUI Picker组件 的选择效果,  所以在这里来分析下 WeUI Picker 的实现逻辑.(weui.js项目地址) 之前也做过类似的组件, ...

  3. 2017普及组D1T3 洛谷P3956 棋盘

    2017普及组D1T3 洛谷P3956 棋盘 原题 题目描述 有一个m×m的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在 ...

  4. Notepad++提升工作效率小技巧

    前言 简单的提升工具效率需求可以借助Notepad编辑器实现.以前也用Python/Shell开发过本文中提到的需求,现在发现其实没有必要.本文介绍一些工作中常见的可以通过"Notepad+ ...

  5. C++学习书籍推荐《Effective C++ 第三版(英文)》下载

    百度云及其他网盘下载地址:点我 作者简介 Scott Meyers is one of the world's foremost authorities on C++, providing train ...

  6. Elasticsearch实战总结

    上手elasticsearch有段时间了,主要以应用为主,未做深入的研究,下面就简单的日常作个简单的总结,做个记录. 版本问题 es版本繁杂,让首次使用的人无从下手.常见的有2+.5+版本,最新版已达 ...

  7. 成功解决 org.mybatis.spring.MyBatisSystemException问题!!

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingExce ...

  8. JS获取display为none的隐藏元素的宽度和高度的解决方案

    有时候,我们一进入页面,就需要获取display为none元素的物理尺寸(宽高),或获取display为none元素的子元素的物理尺寸(宽高),本篇文章就如何解决以上问题给出自己的解决方案 <h ...

  9. k8s学习 - 概念 - ReplicationController

    k8s学习 - 概念 - ReplicationController 我们有了 pod,那么就需要对 pod 进行控制,就是同一个服务的 podv我需要启动几个?如果需要扩容了,怎么办?这里就有个控制 ...

  10. [ZJOI2006]物流运输 题解

    [ZJOI2006]物流运输 时间限制: 10 Sec  内存限制: 162 MB 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个 ...