Python基础之函数嵌套知识总结
作者:人气小姜 发布时间:2021-12-07 18:54:09
标签:Python,函数,嵌套
内部/内嵌函数
1、定义:在一个函数的函数体内使用关键字def
关键字定义一个新的函数,这个新的函数就叫做内部/内嵌函数。
2、注意点:内部函数的整个函数体都在外部函数的作用域内,如果在内部函数内没有对外部函数变量的引用,即访问,那么除了在外部函数体内,在其他任何地方都不能对内部函数进行调用。
3、内部函数可以访问外部函数的变量,但是不能对外部函数中的变量进行使用,即不能试图改变外部函数中的变量。但可以使用nonlocal
关键字修饰内部函数的变量,修饰后内部函数就可以访问并使用外部函数的变量。🌰1
def out_func(out_name):
def in_func(in_name):
print(out_name.title() + " " + in_name.title()) # 内部函数可以访问外部函数的变量,但不能使用不能改变
print("this is user()")
return in_func # 返回的是内部函数对象,也就是内部函数地址。
a = out_func("tom")
print(a)
print(type(a))
输出结果:
通过输出内容我们可以看到,调用out_func函数后,返回的内容是一个函数地址,类型是一个函数
def out_func(out_name):
def in_func(in_name):
print(out_name.title() + " " + in_name.title()) # 内部函数可以访问外部函数的变量,但不能使用不能改变
print("this is user()")
return in_func # 返回的是内部函数对象,也就是内部函数地址。
a = out_func("tom") # 返回的是in_func这个函数对象
a("jerry") # 相当于in_func("jerry")
out_func("tom")("jerry")
输出结果:
a = out_func("tom")
语句是调用外部函数,执行后变量a就相当于in_func
,a("jerry")
语句相当于in_func("jerry")
。
out_func("tom")("jerry")
语句和a = out_func("tom")
、a("jerry")
结果是一样的。
def out_func(out_name):
def in_func(in_name):
print(out_name.title() + " " + in_name.title()) # 内部函数可以访问外部函数的变量,但不能使用不能改变
print("this is user()")
return in_func # 返回的是内部函数对象,也就是内部函数地址。
in_func("test") # 局部变量 不能在外部函数外部使用
输出结果:
内部函数也算是外部函数的一个局部变量,所以在外部函数外部,它也是没有作用域的。
Tip:
title():将调用其的字符串首字母大写
来源:https://blog.csdn.net/windyJ809/article/details/117062782
0
投稿
猜你喜欢
- 神经网络一般用GPU来跑,我们的神经网络框架一般也都安装的GPU版本,本文就简单记录一下GPU使用的编写。GPU的设置不在model,而是在
- 4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中
- 一、现象最近在数据库中删除了一张表,重新执行python manage.py migrate时出错,提示不存在这张表。通过查找相关的资料,最
- *注意:本文的内容涉及到修改NTFS磁盘权限和设置安全策略,请务必在确认您了解操作可能的后果之后再动手进行任何的修改。文中提及的权限都是在原
- 连续看到几个和 Oracle 优化器隐含参数 _sort_elimination_cost_ratio 相关的优化案例(Refer Refe
- python中字符串数组如何逆序排列?下面给大家介绍几种方法:1、数组倒序:原始元素的倒序排列(1)切片>>> arr =
- 前言:python多进程,经常在使用,却没有怎么系统的学习过,官网上面讲得比较细,结合自己的学习,整理记录下官网:https://docs.
- 本文实例讲述了python判断远程端口是否打开的方法。分享给大家供大家参考。具体实现方法如下:import socketsk = socke
- 从Access数据库中选取记录有件最令人丧气的事情,它们是以怎样的顺序输入到数据库内就按照怎样的顺序出来。就算你在Access环境内采用So
- 本文实例讲述了Python常用模块sys,os,time,random功能与用法。分享给大家供大家参考,具体如下:sys:介绍:主要包含涉及
- import osimport sysimport MySQLdbdef getStatus(conn):  
- HTTP暴力破解、撞库,有一些惯用的技巧,比如:1. 在扫号人人网时,我遇到单个账号错误两次,强制要求输入验证码,而对方并未实施IP策略。我
- 1. 需求:用户答题练习,当用户获取所有题目的同时,需要判断用户是否已经做过该题目,如果做过,需要render的时候添加一个“回顾”按钮。2
- python程序结构python“一切皆对象”,这是接触python听到最多的总结了。在python中最基层的单位应该就是对象了,对象需要靠
- 1.正则表达式是什么很简单就是一种字符串匹配,eg: 比如你在注册账户时我们需要对用户的用户名判断是否合法,这时候就需要对用户输入的检索,或
- 中间件是一个钩子框架,它们可以介入 Django 的请求和响应处理过程。 它是一个轻量级、底层的 插件 系统,用于在 全局修改 Django
- 导语学习一下golang权限控制,保留一下demo代码作为参考Casbin是什么Casbin是一个强大的、高效的开源访问控制框架,其权限管理
- lambda表达式python中形如:lambda parameters: expression称为lambda表达式,用于创建匿名函数,该
- 这两天做基于 Flash9(ActionScript 3.0)的 JavaScript PHPRPC 3.0 客户端时遇到了一些 JavaS
- 代码如下:'===================================== '获得文件后缀 '=====