详解python命名空间

Python中每个对象都存储在一个命名空间(namespace)中,命名空间相当于是一个名字到对象的映射。理解命名空间对于理解Python的作用域规则至关重要。

Python中命名空间可以分为三类:内置命名空间(built-in namespace)、全局命名空间(global namespace)和局部命名空间(local namespace)。

  1. 内置命名空间

内置命名空间是指Python解释器加载时自动加载的一些名字,并默认绑定到相应的对象上。这些名字在任何模块中都是可用的,无需导入便能使用,比如常见的printlist等。

以下是一个例子,可以通过dir(__builtins__)来查看内置命名空间。

import builtins

print(dir(builtins))  # 可以直接使用内置函数dir(),查看内置命名空间中的内容
  1. 全局命名空间

全局命名空间是定义在模块层级的命名空间,模块中定义的所有变量和函数名都属于全局命名空间。在模块被导入时创建,当程序执行结束时被销毁。

以下是一个例子,global_var是在全局命名空间中定义的变量。

global_var = 10

def func():
    print(global_var)

func()  # 输出10
  1. 局部命名空间

局部命名空间是在函数调用时创建的,函数调用结束后销毁。局部命名空间中的变量和函数名只在函数内部可见,在函数外部无法访问。

以下是一个例子,func中定义了局部变量local_var,只能在函数内部访问。

def func():
    local_var = 20
    print(local_var)

func()  # 输出20
print(local_var)  # NameError

总的来说,当Python解释器访问一个变量名时,它首先在内置命名空间中查找,如果没有找到则查找全局命名空间,如果还是没有找到则查找局部命名空间。如果变量还是没有找到,则会产生NameError异常。

参考资料:

  1. https://docs.python.org/3/tutorial/classes.html#scopes-and-namespaces-example
  2. https://realpython.com/python-namespaces-scope/#the-three-types-of-namespace

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解python命名空间 - Python技术站

(0)
上一篇 2023年4月15日
下一篇 2023年4月15日

相关文章

  • python __getitem__使用方法详解

    当我们在Python中定义一个类时,如果该类想具备可迭代性,那么就需要实现__getitem__方法。 1. __getitem__方法用法 __getitem__(self, index)函数,是Python内置函数,用于索引操作符[]使用。 如果在一个类中定义了该方法,则可以像索引操作符一样使用它来获得指定位置的元素或切片。 下面是一个简单的例子: cl…

    python 2023年4月15日
    00
  • python如何区别方法和函数

    Python中方法和函数是两个不同的概念。方法是属于一种数据类型或对象的函数,函数是只属于模块、类或程序的函数。下面详细介绍如何区别方法和函数。 区别方法和函数的方法 在Python中,我们可以通过判断一个函数是否绑定到对象或类上来判断它是方法还是函数。 方法 方法是一个函数,它在一个对象或类上执行。 在Python中,无论是类方法还是实例方法,它们都属于相…

    python 2023年4月15日
    00
  • python判断字符串类型的函数

    Python中判断字符串类型的函数可以使用内置函数type()来实现。type()函数可以返回任意对象的类型,包括字符串类型。判断字符串类型的代码示例如下: str1 = ‘This is a string’ str2 = "This is also a string" str3 = ”’This is a multi-line str…

    python 2023年4月15日
    00
  • python中的items函数

    下面是关于Python中的items()函数的详细讲解。 基本介绍 Python中的items()函数用于将字典中的键/值对以元组形式返回,可以让我们方便地对字典中的元素进行遍历和操作。 函数参数 items()函数不接受任何参数。 返回值 items()函数返回字典中所有的键/值对,以列表形式存储。 示例代码 下面是两个例子来说明items()函数的用法。…

    python 2023年4月15日
    00
  • python np.split函数

    下面就是详细的 Python np.split 函数攻略。 函数介绍 函数定义: numpy.split(ary, indices_or_sections, axis=0) 其中,参数含义为: ary:需要被分割的数组; indices_or_sections:可以是整数,用于指定 LaPacker 分割数组的点,或者是 1-D 序列,用于指定划分点。如果是…

    python 2023年4月15日
    00
  • python里input函数怎么用

    当我们想要从用户那里获取输入时,Python 中的 input() 函数就可以派上用场。这个函数允许用户输入一些文本,并将其存储在一个变量中,以供程序使用。 语法 在Python中,使用 input() 函数获取用户输入的语法如下: variable_name = input("Please enter some text: ") var…

    python 2023年4月15日
    00
  • python实现随机码函数

    这里给你讲解Python实现随机码函数的完整攻略。 1、思路 生成随机码的基本思路是:从可选字符串中随机选取指定长度的字符。因此可以采用Python中的random模块来生成随机数,并根据需要选择相应的字符集。 随机码的生成过程可以按照以下步骤进行: 定义所有可选字符(例如大小写字母、数字、特殊字符等)。 根据需求定义随机码的长度。 从所有可选字符中随机选择…

    python 2023年4月15日
    00
  • 如何用python定义函数计算利息

    下面是如何用 Python 定义函数计算利息的完整攻略。 第一步:理解复利计算公式 在编写计算利息的 Python 函数之前,我们需要首先了解复利计算公式。以下是一个典型的复利计算公式: A = P * (1 + r/n) ^ (n * t) 其中,A 是最终的本息合计;P 是本金;r 是年利率;n 是计息次数;t 是计息时间(单位为年)。 第二步:定义计算…

    python 2023年4月15日
    00
合作推广
合作推广
分享本页
返回顶部