楼主: 时光永痕
649 0

[数据挖掘新闻] Python中的命名空间和范围 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)三级

46%

威望
0
论坛币
26 个
通用积分
49.7576
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34070 点
帖子
2731
精华
0
在线时间
316 小时
注册时间
2020-7-21
最后登录
2024-4-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Python中的命名空间和范围
什么是名称空间:
命名空间是一个系统,在Python中,每个对象都有唯一的名称。对象可以是变量或方法。Python本身以Python字典的形式维护名称空间。让我们来看一个示例,计算机中的目录文件系统结构。不用说,一个目录可以有多个目录,每个目录中都有一个具有相同名称的文件。但是,只要指定文件的绝对路径,就可以将文件定向到该文件。
在实时示例中,名称空间的作用就像一个姓。在课堂上可能找不到一个“爱丽丝”,但可能会有多个“爱丽丝”,但是当您特别要求“爱丽丝·李”或“爱丽丝·克拉克”(姓)时,只会有一个(暂时不这样做)。 (对于多个学生来说,名字和姓氏是一样的)。
同样,Python解释器根据名称空间了解代码中试图指向的确切方法或变量。因此,单词本身的划分几乎没有提供更多信息。它的名称(表示名称,唯一标识符)+空格(表示与范围相关的内容)。在这里,名称可以是任何Python方法或变量,并且空格取决于尝试访问变量或方法的位置。
命名空间的类型:
当Python解释器仅在没有用户定义的模块,方法,类等的情况下运行时,始终会存在诸如print(),id()之类的某些函数,它们内置在名称空间中。用户创建模块时,将创建全局名称空间,稍后创建局部函数将创建局部名称空间。在内置的命名空间包含全局命名空间和全局命名空间包含局部命名空间。
命名空间的生命周期:
名称空间的生存期取决于对象的范围,如果对象的范围结束,则该命名空间的生存期将结束。因此,不可能从外部名称空间访问内部名称空间的对象。
例:
filter_none
亮度_4
# var1 is in the global namespace  
var1 = 5
def some_func():
    # var2 is in the local namespace  
    var2 = 6
    def some_inner_func():
        # var3 is in the nested local  
        # namespace
        var3 = 7
如下图所示,相同的对象名称可以出现在多个名称空间中,因为相同名称之间的隔离由它们的名称空间维护。
但是在某些情况下,可能只对更新或处理全局变量感兴趣,如下面的示例所示,应该将其显式标记为全局变量,并进行更新或处理。
filter_none
编辑
play_arrow
亮度_4
# Python program processing
# global variable
count = 5
def some_method():
    global count
    count = count + 1
    print(count)
some_method()
输出:
6
Python对象的范围:
范围是指可从其中访问特定Python对象的编码区域。因此,不能从代码的任何地方访问任何特定的对象,必须由对象的范围允许访问。
让我们以一个例子来详细了解它:
例子1:
filter_none
编辑
play_arrow
亮度_4
# Python program showing
# a scope of object
def some_func():
    print("Inside some_func")
    def some_inner_func():
        var = 10
        print("Inside inner function
    some_inner_func()
    print("Try printing var from outer function: "
some_func()
输出:
里面some_func
内部内部函数,var的值:10
追溯(最近一次通话):
  在第8行中输入“ /home/1eb47bb3eac2fa36d6bfe5d349dfcb84.py”文件
    some_func()
  在some_func的第7行,文件“ /home/1eb47bb3eac2fa36d6bfe5d349dfcb84.py”
    print(“尝试从外部函数打印var:”,var)
NameError:名称“ var”未定义

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python Processing function Variable printing

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 22:56