返回顶部
首页 > 资讯 > 后端开发 > Python >如何理解Python的 __name__ 变量
  • 490
分享到

如何理解Python的 __name__ 变量

2023-06-15 19:06:50 490人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“如何理解python的 __name__ 变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!大家应该已经在很多 Python

本篇内容介绍了“如何理解python的 __name__ 变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

大家应该已经在很多 Python 脚本里见到过 name 变量了吧?它经常是以类似这样的方式出现在我们的程序里:

if __name__ ==  __main__ :      main()

今天,我就带大家详细扒一扒这个内置变量的用法,示范一下在你写的 Python 模组里要怎么用到它。

这个 __name__ 拿来做什么的?

作为 Python 的内置变量,__name__ 变量(前后各有两个下划线)还是挺特殊的。它是每个 Python 模块必备的属性,但它的值取决于你是如何执行这段代码的。

在许多情况下,你的代码不可能全部都放在同一个文件里,或者你在这个文件里写的函数,在其他地方也可以用到。为了更高效地重用这些代码,你需要在 Python 程序中导入来自其他文件的代码。

所以,在 __name__ 变量的帮助下,你可以判断出这时代码是被直接运行,还是被导入到其他程序中去了。

这个__name__  变量可能取什么值?

当你直接执行一段脚本的时候,这段脚本的 __name__变量等于 __main__,当这段脚本被导入其他程序的时候,__name__ 变量等于脚本本身的名字。

下面,让我举两个栗子来说明一下:

如何理解Python的 __name__ 变量

情况 1 - 直接运行脚本

假设我们有一个nameScript.py,代码如下:

def myFunction():      print( 变量 __name__ 的值是   + __name__)  def main():      myFunction()  if __name__ ==  __main__ :      main()

当你直接执行 nameScript.py 时,流程是这样处理的:

如何理解Python的 __name__ 变量

在所有其他代码执行之前,__name__变量就被设置为 __main__ 了。在此之后,通过执行 def 语句,函数 main() 和 myFunction() 的本体被载入。

接着,因为这个 if 语句后面的表达式为真 true,函数 main() 就被调用了。而 main() 函数又调用了myFunction(),打印出变量的值__main__。

情况 2 - 从其他脚本里导入

如果你需要在其他脚本里重用这个 myFunction() 函数,比如在 importingScript.py 里,我们可以将 nameScript.py 作为一个模组导入。

假设 importingScript.py 的内容如下:

import nameScript as ns  ns.myFunction()

这时,我们就有了两个不同的作用域:一个是 importingScript 的,一个是 nameScript 的。让我画个示意图,你就能看出这和之前的区别了:

如何理解Python的 __name__ 变量

在 importingScript.py 里,__name__ 变量就被设置为 __main__。当导入 nameScript 的时候,Python 就在本地和环境变量 PATH 指向的路径中寻找对应名称的 .py 文件,找到之后,将会运行导入的文件中的代码。

但这一次,在导入的时候,它自身的 __name__变量就被设置为了 nameScript ,接下来还是一样,函数 main() 和 myFunction() 的本体被载入。然而,这一次 if 语句后面的表达式结果为假 false,所以 main() 函数没有被调用。

导入完毕之后,回到 importingScript.py 中。现在 nameScript 模块中的函数定义已经被导入到当前的作用域中,于是我们通过 ns.myFunction() 的方式调用模块中的函数,这个函数返回的是模块内的变量的值 nameScript 。

如果你试着在 importingScript 中打印 name__ 变量的值,那当你直接执行 importingScript 的时候,它也会输出 __main 。原因在于,这个变量是在 importingScript 的作用域中的。

“如何理解Python的 __name__ 变量”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何理解Python的 __name__ 变量

本文链接: https://lsjlt.com/news/281359.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何理解Python的 __name__ 变量
    本篇内容介绍了“如何理解Python的 __name__ 变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!大家应该已经在很多 Python...
    99+
    2023-06-15
  • Python的__name__变量有什么作用
    本篇内容主要讲解“Python的__name__变量有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的__name__变量有什么作用”吧!我知道大家肯定不止一次在Python...
    99+
    2023-06-01
  • java 变量该如何理解
    这篇文章的内容主要围绕java 变量该如何理解进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!变量是Java 程序的一个基本存储单元。变量由一个标识符...
    99+
    2023-06-03
  • 深入理解python类的实例变量和类变量
    本python是python 3.5版本~!!!class aa:       w = 10       def __init__(self):            self.x = 11            self.y = 12  ...
    99+
    2023-01-31
    变量 实例 python
  • 深入理解Python变量与常量
    变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。常量是一块只读的内存区域,常量一旦被初始化就不能被改变。...
    99+
    2022-06-04
    常量 变量 Python
  • python如何避免变量中间变量
    小编给大家分享一下python如何避免变量中间变量,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!避免变量中间变量# 不推荐写法,代码耗时:0.07秒de...
    99+
    2023-06-27
  • 怎么理解Python中的ThreadLocal变量
    这篇文章主要讲解了“怎么理解Python中的ThreadLocal变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Python中的ThreadLo...
    99+
    2024-04-02
  • 如何解析Python 变量命名规则和定义变量
    这篇文章给大家介绍如何解析Python 变量命名规则和定义变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、定义变量语法规则:变量名 = 值定义变量的语法规则中间的‘=',并不...
    99+
    2023-06-22
  • 如何在python中使用__name__ 属性
    本篇文章给大家分享的是有关如何在python中使用__name__ 属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、使用注意__name__ 属性可以做到,测试...
    99+
    2023-06-15
  • 如何理解Shell编程中的特殊变量之位置变量
    本篇内容介绍了“如何理解Shell编程中的特殊变量之位置变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!$0 获得当前脚本的文件名,包括路...
    99+
    2023-06-09
  • python如何创建可变变量
    这篇文章主要介绍了python如何创建可变变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、可以使用字典来完成此操作。字典是键和值的存储。>>>&nbs...
    99+
    2023-06-20
  • Python如何通过变量ID得到变量的值
    目录通过变量ID得到变量的值如何查看一个变量的id用id()函数通过变量ID得到变量的值 已知获得变量的id用函数id(),那么它的反函数是什么? 答案是:PyObj_FromPtr...
    99+
    2024-04-02
  • 如何理解MySQL ECLARE局部变量
    如何理解MySQL ECLARE局部变量,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。没想到mysql中的变量要在BEGIN ... END中...
    99+
    2024-04-02
  • 详解python的变量
    目录1.Python 变量的概述:2.Python 变量的命名3.Python 变量赋值3.1 Python 变量赋值概述3.2 Python 变量的基本赋值格式3.3 Python...
    99+
    2024-04-02
  • python如何输出变量
    在Python中,可以使用print()函数来输出变量的值。例如:```pythonx = 10print(x)```输出:```1...
    99+
    2023-10-11
    python
  • python如何交换变量
    小编给大家分享一下python如何交换变量,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!交换变量有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变...
    99+
    2023-06-26
  • python变量如何输出
    Python 中可以使用 print() 函数来输出变量的值。例如,如果有一个变量名为 x,我们可以使用 print(x) 来输出该...
    99+
    2023-08-21
    python
  • python中的变量如何定义
    在Python中,变量可以通过赋值来定义。你可以使用等号(=)来为变量赋值。变量的命名遵循一些规则: 变量名只能包含字母、数字和下...
    99+
    2024-02-29
    python
  • Python如何配置环境变量详解
    目录一、概述1.1 检查是否已配置成功(选)1.2 查询 python.exe 安装路径(选)二、环境变量图示2.1 进入系统设置2.2 设置环境变量三、扩展3.1 在 cmd 中执...
    99+
    2024-04-02
  • Linux如何处理变量
    这篇文章主要介绍了Linux如何处理变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。DWARF 位置某一给定时刻的内存中变量的位置使用 DW_AT_location 属性编...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作