Python全栈之路----函数----嵌套函数

  • 函数内部可以再次定义函数
  • 要执行函数,必须调用
def func1():
    print(‘alex‘)

    def func2():
        print(‘eric‘)

    func2() #如果没有这一句,不会print(‘eric‘),只print(‘alex‘)

func1()

下面在两个不同位置对age赋值,输入结果一致,均为  73

age = 19
def func1():
    age = 73
    def func2():
        print(age)
    # age = 73?
    func2()
func1()

下面,会报错,因为func2调用时向前寻找age出现混乱

age = 19
def func1():
    def func2():
        print(age)

    func2()
    age = 73

func1()

下面,输出结果为  73  73

age = 19
def func1():
    global age
    def func2():
        print(age)
    age = 73
    func2()

func1()
print(age)

原文地址:https://www.cnblogs.com/Moxiaoyu666/p/10360060.html

时间: 2024-10-07 14:14:29

Python全栈之路----函数----嵌套函数的相关文章

Python全栈之路4--内置函数--文件操作

上节重点回顾: 判断对象是否属于某个类,例如: 列表中有个数字,但是循环列表判断长度,用len会报错;因为int不支持len,所以要先判断属于某个类,然后再进行if判断. # isinstance(对象,类名) 判断变量输入的对象是否是属于这个类 # 方法1: temp = [11, 22, "", " ", []] print(isinstance(temp, (str, list, tuple))) # 一旦对象属于这个后面元组的类中的任何一个 就返回true

python 全栈之路

python 全栈之路 一. python 1. Python基础知识部分 Python Python那点事 Python windows和linux下 安装 Python2,Python3 Python 开启入坑之路 Python 基本数据类型 Python 那些零碎的知识点 Python -函数 Python - 面对对象 Python - 模块 Python - 文件操作 Python - python中经常踩得的坑 2. Python - 网络编程 3. Python - 并发编程 二.

Python全栈之路----常用模块----hashlib加密模块

加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值. 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,他把一

Python全栈之路系列之赋值与运算符

Python全栈之路系列之赋值与运算符 在继续下面的文章之前我们先来浏览一下Python为我们提供的几种运算符,定义两个变量,分别是a和b,a的值是10,b的值是20. 算术运算符 运算符 描述 实例 + 加,两个对象相加 a+b=30 - 减,两个对象相减,可能会得到负数 a-b=-10 * 乘,两数相称或是返回一个被重复若干次的字符串 a*b=200 / 除,两个对象相除 b/a=2 % 取膜,返回除法的余数 b%a=0 ** 幂,返回x的y次幂 a**b=10000000000000000

Python全栈之路_01

Python全栈之路 前言:因为Python主要是在Linux和widows操作系统上使用所以,首先就介绍Pyhton在这两个平台上的安装和一些基础知识 Linux系统下安装Pyhton 1.工具 虚拟机:VMware workstation 12 Pro Linux系统:CentOS 64 位 VMware虚拟机安装很简单就不说明了. 在虚拟机安装CentOS 需要注意的是: 运行内存分配1G左右即可 可以开机按F2进入bios界面boot目录下选择启动设备选择Hard Drive为优先启动位

Python全栈之路----函数----返回值

函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): print('----注册学生信息----') print('姓名:',name) print('年龄:',age) print('国籍:',country) print('课程:',course) if age > 22: return False else: return True registriat

Python全栈之路----函数进阶----闭包

关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数).而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量.参数.当其中一个这样的内部函数在包含它们之外被调用时,就会形成闭包.也就是说,内部函数会在外部函数返回后被执行.而当这个内部函数执行时,它仍然必须访问其外部函数的局部变量.参数以及其他内部函数.这些局部变量.参数和函数声明(最初时)的值是外部函数的返回时的值,但也会受到内部函数的影响. def func(): n = 10 def func2(): print(

Python全栈之路----函数进阶----作用域的查找空间

n = 10 def func(): n = 20 print('func:',n) def func2(): n = 30 print('func2:',n) def func3(): print('func3:',n) func3() func2() func() 问题:在func3()里打印的n的值是多少?   30 LEGB代表名字查找顺序:locals -> enclosing function -> globals -> _builtins_ locals 是函数内的名字空间

python全栈闯关--10-2、函数的嵌套和作用域

1.全局作用域函数嵌套 def three_max(a, b, c): t = two_max(a, b) # 函数嵌套调用two_max return t if t > c else c def two_max(a, b): return a if a > b else b print(three_max(1, 2, 3)) 程序执行,按照从下往下的顺序,把变量.函数名加入到命名空间,如果还未加入到命名空间,就调用了函数,将会报错. 如上程序,如果把three_max的调用,交换到two_m

Python全栈之路系列----之-----面向对象

面向对象基本介绍 python编程方式: 面向过程编程  (流水线式思维) 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 面向函数编程 封装代码,简化流程 但是本质上没有改变结果   是面向结果编程思想 面向对象编程 优点是:解决了程序的扩展性.对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易. 缺点:可控性差,无法向面向过程的程序设计流水线式的可以很精