首页 > 其他分享 >错题本

错题本

时间:2022-10-24 19:23:44浏览次数:45  
标签:作用域 print 错题 查找 名称 空间 全局

2.名称空间

名称空间就是内存中存放变量名和变量值绑定的地方。

名称空间分类:

(1)内置名称空间

python解释器 运行开始产生的名称空间,python解释器运行结束则释放,

例如len(), open(), del, print()

(2)全局名称空间

py文件运行开始产生的名称空间,py文件运行结束则释放,包括里边代码块中产生的变量。

例如 

if True:

  a = '123'   

全局变量 name = '123'

if True:
  a = 123    #123
print(a)     #这就能解释为啥a没有全局定义,只在某个代码块内定义,但是在输出时,能够输出出来。这就是全局名称空间。
def func():
  b=12
func()
print(b) #报错b未定义

(3)局部名称空间

方法运行开始产生的名称空间,方法执行结束则释放。

def func():

  age = 12                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

这就涉及到变量的查找顺序:

在方法内,优先查找局部命名空间,然后查找全局命名空间,最后查找内置命名空间。

 

错题:

a = 1

def func():

  print(a)     #这里会报错,因为python解释器发现局部变量中有a,并且a=2,于是就不再适用a=1, 但是在解释执行时,发现a的定义在后边,于是报错。

  a=2

print(a)

作用域:命名空间的作用范围就是作用域

如果在局部作用域中想要修改全局变量,有两种情况:

(1)如果在局部变量中想要修改全局的可变类型,直接修改即可,也就是list/dict在方法中被修改了,直接就改了

(2)如果在局部变量域中修改不可变类型,需要提前声明, global 变量名。

 

标签:作用域,print,错题,查找,名称,空间,全局
From: https://www.cnblogs.com/lhg37927/p/16822486.html

相关文章

  • C/C++ 错题总结
    写出下列程序在X86上的运行结果structmybitfields{unsignedshorta:4;......
  • OS第三章错题
    OS第三章错题​ 现在看不知道当时为啥做错了……​ 这个题要做对,就要分清楚作业和进程不同的状态。作业有收容、运行、完成三种状态。其中在运行时,作业内的若干进程就......
  • 数学错题
    三角函数给你一些条件,问你B-A最大值。你要想到这是问你tanB的最大值给你一个三角函数的式子,让你化简求值域,然后你发现数字贼离谱。这种情况下往往是方法错了,想想有......
  • 操作系统第一、二章错题
    操作系统第一、二章错题​ A就不解释了,用过服务器的都明白。UNIX操作系统采用以全局变量为中心的模块结构,所以导致系统结构较为复杂,表现出来就是模块间的循环调用和文件......
  • Shell及Linux常见易错题目题库-Shell/Linux-选择、简答、判断、编程
    1、以下不合法的shell头是(不合法指运行会报错)(   )A.#!/bin/bashB.#-/bin/bashC.!#/bin/bash答案:C 2、if[$2-a$2="test"]中-a是什么意思(  )A.大于B.减C.......
  • 错题笔记:中断是中断源来了 主程序先暂停然后去执行中断程序动作,执行完后,保留此状态;又
    #include<reg51.h>sbitLED1=P1^3;sbitLED2=P3^5;sbitLED3=P3^6;sbitLED4=P3^7;voidblink();voidJT();voidPMD();//执行动作voidmain(){ EX0=1; EA=1; ......
  • 操作系统错题笔记
    “访管”指令仅在用户态下使用,执行“访管”指令将用户态转变为核心态。因操作系统不允许用户直接执行某些“危险性高”的指令,因此用户态运行这些指令的结果会转成操作系......
  • 理解错题了 36. 有效的数独
     理解错题了,就是让你在矩阵中循环判断而已,我还想到了康托付展开请你判断一个 9x9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9......
  • Linux错题集1
    错题1在Linux系统中,小王希望将他执行ls命令的输出结果保存在当前目录下的文件output.ls中,以供日后进行分析和使用,但要求不覆盖原文件的内容,他应该使用的命令是A.ls>outpu......
  • JAVA--错题本系统 个人总结
    1.static的运用,全局使用某一变量并且为了该变量不在方法中重复被调用。可以用static来放在该变量前。如:staticintnumber=0;//出题数由此可以实现改变在各个方法中是统......