首页 > 试题广场 >

python是用C语言写成的,根据名字空间特性,以下代码经过

[单选题]
python是用C语言写成的,根据名字空间特性,以下代码经过python编译器编译后,一共得到()个PyCodeObject对象。
class A:
    pass
def Fun():
    pass
a = A()
Fun()
  • = A()<br>Fun()
  • 1
  • 2
  • 3
  • 4
3个。进入一个名字空间成为进入一个Code Block
一个对应整个.py文件 ;一个对应Class A;一个对应def Fun
编辑于 2018-10-30 10:08:36 回复(0)
https://blog.csdn.net/jasonblog/article/details/7338840
每个名字空间(或者说作用域)都对应一个PyCodeObejct
在这里全局global作用域一个;函数一个;类一个;所以有3个作用域;
顺便了解一下LEGB
locals 是函数内的名字空间,包括局部变量和形参
enclosing 外部嵌套函数的名字空间(闭包中常见)
globals 全局变量,函数定义所在模块的名字空间
builtins 内置模块的名字空间
而查找的优先顺序从左到右以此是: L -> E -> G -> B
编辑于 2018-11-05 19:48:41 回复(0)