iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python基础知识之函数初阶——命名
  • 728
分享到

python基础知识之函数初阶——命名

基础知识函数python 2023-01-31 08:01:47 728人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

python中的命名空间分三种: 内置的命名空间,在启动解释器的时候自动加载进内存的各种名字所在的空间,比如print,input等不需要定义就可以使用的名字 全局命名空间,就是从上到下所有我们定义的变量名和函数名所在的空间,是在程序从上

python中的命名空间分三种:

内置的命名空间,在启动解释器的时候自动加载进内存的各种名字所在的空间,比如print,input等不需要定义就可以使用的名字

全局命名空间,就是从上到下所有我们定义的变量名和函数名所在的空间,是在程序从上到下被执行的过程中加载进内存的。

局部命名空间,比如函数在执行时所开辟的空间,里面存放了函数内部定义的各种名字,随着函数执行结束 这个局部命名空间就消失了。

在局部命名空间可以使用全局和内置命名空间中的名字

在全局命名空间可以使用内置命名空间中的名字,但不能使用局部命名空间的。

在内置命名空间不能使用全局和局部的名字。

可以形象地理解成内置命名空间具有最高级别,不需要定义就可以使用,全局命名空间次之,最低级是局部命名空间。

当低级命名空间使用名字时首先会在自身的命名空间里查找,如果有就使用,没有的话就到上一级命名空间内查找,如果有就使用,没有就继续到更上一级空间内查找,直到顶层的内置命名空间,如果有就使用,没有则会报错。

举个例子如下:

num = 1 #这是全局命名空间内定义的num = 1
def func1(): #这个函数会创建一个局部命名空间1
    num = 2  #这是在局部命名空间1定义的num = 2
    def func2(): #这个函数会创建一个局部命名空间2
        num = 3 #这是在局部命名空间2 内 定义的num = 3
        print(num) #这是在局部命名空间2内 使用num 变量
    func2() # 调用函数func2时 会执行该命令创建局部命名空间2
func1()  #调用函数func1时会创建局部命名空间1,
#这几个命名空间的级别顺序是:内置>全局>局部1>局部2
#当print(num)指令执行时它会在局部2内查找是否有num,发现有则直接引用,如果没有则会到上一级(局部1)中查找,局部1没有则继续到上一级(全局)查找

再看一个例子:

#max()函数是内置的函数,如果我们在全局命名空间中定义了函数名为max的函数时,则该函数就失效了,也就是说在自身空间内找到了max()后就不去内置命名空间查找了
def max(a,b,c):
    return 'max失效了?'
print(max(1,2,3))#
正常情况下应该输出3(max函数功能是返回最大值),但是因为我们把max这个名字占用了,所以当使用时程序就不去上一级空间(内置命名空间)去查找了

与命名空间有关的两个函数globals()和locals()
可以用globals()查看全局命名空间的所有定义的名字
可以用locals()查看当前命名空间的所有定义的名字,在全局则返回全局,在局部则返回局部
这两个函数的返回值可以看作是字典,格式都是{key1:value1,key2:value2,.....}

当函数1内嵌套函数2时,对于函数1内的不可变数据类型的变量,函数2内可以引用,但不可修改

def func1():
    a = 1
    def func2():
        a = a + 1 
#此处会报一个严重错误,因为a同时出现在等号两边,Python会先执行等号右边的表达式,
#发现你在引用a,然后它会先在本空间查找a,结果找到了等号左边的a,其结果就是“在定义变量前引用变量”
        pass      
    func2()
func1()
#如果想要修改,可以使用nonlocal(python3中新增)
def func1():
    a = 1
    def func2():
        nonlocal a
        a = a + 1
    func2()
    print(a) 
func1()
#我们可以看出,执行func2()后再输出a,a已经变成2了
    2

nonlocal只能作用于局部变量,当使用后它会自动查找上一级局部命名空间是否有该变量,如果没有继续向上查找,直到最上一级“局部命名空间”

--结束END--

本文标题: python基础知识之函数初阶——命名

本文链接: https://www.lsjlt.com/news/193083.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python基础知识之函数初阶——命名
    python中的命名空间分三种: 内置的命名空间,在启动解释器的时候自动加载进内存的各种名字所在的空间,比如print,input等不需要定义就可以使用的名字 全局命名空间,就是从上到下所有我们定义的变量名和函数名所在的空间,是在程序从上...
    99+
    2023-01-31
    基础知识 函数 python
  • Python基础知识之函数,类,模块
    目录1、Function 函数1)定义函数2)参数设置3)全局和局部变量2、Class类1)定义class2)class的功能3)继承4)私有属性和功能5)特殊方法3、Module模...
    99+
    2024-04-02
  • Python基础之函数嵌套知识总结
    内部/内嵌函数 1、定义:在一个函数的函数体内使用关键字def关键字定义一个新的函数,这个新的函数就叫做内部/内嵌函数。 2、注意点:内部函数的整个函数体都在外部函数的作用域内,如...
    99+
    2024-04-02
  • python之基础知识
    1、变量: 2、字符串:用   “  ” 或 ' ' 标注的。 3、列表:[  ] 4、del 和 pop 的区别: 判断何时使用:当从列表中删除元素后不再使用,则del,若后续还使用则pop() 例: #del name =["lele...
    99+
    2023-01-30
    基础知识 python
  • python基础学习之递归函数知识总结
    目录一、递归函数使用注意点二、递归的效率问题三、递归函数引入四、递归的深度五、通过缓存解决递归限制六、递归函数使用示例一、递归函数使用注意点 递归函数一定要编写终止条件,否则将产生无...
    99+
    2024-04-02
  • python之初识函数
      函数: 函数是对功能或动作的封装. 函数的语法和定义: def 函数名(): 函数体 调用函数: 函数名()   函数返回值: return : 返回 def yue(): print("拿出手机") ...
    99+
    2023-01-30
    函数 python
  • Python基础【高阶函数】
    map(fun,seq) 将seq中的元素依次作为参数传入fun,返回由函数返回值组成的新的列表。 python3:返回一个map对象 python2:返回列表 可以用list将对象转换为列表进行调用 代码: def f...
    99+
    2023-01-31
    高阶 函数 基础
  • 怎么解析Python函数基础知识
    今天就跟大家聊聊有关怎么解析Python函数基础知识,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 一、函数基础简单地说,一个函数就是一组Python语句的组合,它们可以在...
    99+
    2023-06-16
  • Python基础知识之2——字典
      字典是什么? 字典是另外一个可变的数据结构,且可存储任意类型对象,比如字符串、数字、列表等。字典是由关键字和值两部分组成,也就是 key 和 value,中间用冒号分隔。这种结构类似于新华字典,字典中每一个字都有一个对应的解释,具体的...
    99+
    2023-01-30
    字典 基础知识 Python
  • Python基础之数据类型知识汇总
    目录一、数字类型二、字符串类型三、布尔类型四、空类型五、列表类型六、元组类型七、字典类型一、数字类型 1、整型int 就是整数 :100 ,200,2,3,4······· 2、浮点...
    99+
    2024-04-02
  • Python 函数编程的基础知识介绍
    函数基础知识掌握自定义函数的基本语法规范和调用方法及掌握函数的各种参数的使用及调用规则。1、Python函数函数( Function )是组织好的,可重复使用的,用来实现单一, 或相关联功能的代码段。函数能提高应用的模块性 ,和代码的重复利...
    99+
    2023-05-14
    Python 函数编程 自定义函数
  • Python基础——4高阶函数
    高阶函数 函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数 map and reduce map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterato...
    99+
    2023-01-30
    高阶 函数 基础
  • python基础之匿名函数详解
    目录1.匿名函数介绍2.语法3.使用场景4.匿名函数和普通函数的对比5.匿名函数的多种形式6.lambda 作为一个参数传递7. lambda函数与python内置函数配合使用8.l...
    99+
    2024-04-02
  • python基础之匿名函数介绍
    目录前言一、创建一个匿名函数:二、创建一个带参数的匿名函数三、求两个数的中的最大的值四、练习题:前言 在定义函数的时候,不想给函数起一个名字。这个时候就可以用lambda来定义一个匿...
    99+
    2024-04-02
  • python数据分析基础知识之shape()函数的使用教程
    目录python中shape()函数1、shape()输入参数2、判断数组的维度总结python中shape()函数 shape函数是numpy.core.fromnumeric中的...
    99+
    2024-04-02
  • Python基础之数据类型知识有哪些
    这篇文章给大家分享的是有关Python基础之数据类型知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数字类型1、整型int就是整数 :100 ,200,2,3,4·······2、浮点型 float小...
    99+
    2023-06-15
  • Python基础之函数参数与返回值进阶
    参数作用:如果外界希望在函数内部处理数据,就可以将数据作为参数传入函数内部; 返回值作用:如果希望一个函数函数执行完成后,向外界报告函数的执行结果,就可以使用函数的返回值。 函数的返回值 进阶 利用元组返回多个函数值 可以用元组让函数返回...
    99+
    2023-01-31
    进阶 函数 返回值
  • python基础之引用和匿名函数
    a=1 #1 为对象, def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'...
    99+
    2024-04-02
  • python3.7函数基础知识有哪些
    本篇内容介绍了“python3.7函数基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  一、函数  从开始接触python就接...
    99+
    2023-06-02
  • python基础之函数
    函数: # 什么是函数:一系列python语句的组合,可以在程序中运行一次或者多次 # 一般是完成具体的独立的功能 # 为什么要使用函数 # 代码的复用最大化以及最小化冗余代...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作