zoukankan      html  css  js  c++  java
  • 命名空间

    当一行代码要使用变量 x 的值时,Python会到所有可用的名字空间去查找变量,按照如下顺序:

    局部名字空间 - 特指当前函数或类的方法。如果函数定义了一个局部变量 x,Python将使用这个变量,然后停止搜索。
    全局名字空间 - 特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python将使用这个变量然后停止搜索。
    内置名字空间 - 对每个模块都是全局的。作为最后的尝试,Python将假设 x 是内置函数或变量。
    如果Python在这些名字空间找不到 x,它将放弃查找并引发一个 NameError 的异常,同时传 递 name x is not defined 这样一条信息

    a = 10
    def fun():
        a = 1111111
        d = 1111111
        print locals() # {'a': 1111111, 'd': 1111111}
        # print c #NameError: global name 'c' is not defined
    
    print globals() # {'a': 10, 'abc': <module 'abc' from '/usr/lib/python2.7/abc.pyc'>, '__builtins__': <module '__builtin__' (built-in)>, '__file__': '/home/an/PycharmProjects/untitled/class_study.py', 'traceback': <module 'traceback' from '/usr/lib/python2.7/traceback.pyc'>, '__package__': None, 'fun': <function fun at 0x7f4b1209a410>, '__name__': '__main__', '__doc__': None}
    
    fun()
    # print d #NameError: name 'd' is not defined
    
  • 相关阅读:
    [Tyvj模拟赛]运
    [NOIP 2011]聪明的质监员
    暑假集训D10总结
    暑假集训D9总结
    [POI2008]枪战Maf
    [Usaco2007 Open]Fliptile 翻格子游戏
    [bzoj1592] Making the Grade
    学生信息管理系统(增删改查)【代码不完整】
    《程序员修炼之道》第五次读后感
    《程序员修炼之道》第四次读后感
  • 原文地址:https://www.cnblogs.com/jijizhazha/p/7193509.html
Copyright © 2011-2022 走看看