关于python中__ name__值的测试详细介绍

这篇文章主要介绍关于python中__ name__值的测试详细介绍

测试中用到的代码如下:

#test_name0.pydef test():    return nameprint nameprint test()import test_name1test_name1.test()

登录后复制

#test_name1.pydef test():    print name    print name

登录后复制

在python顶层解释器中执行命令与结果如下:

In [1]: type(name)Out[1]: strIn [2]: print nameOut[2]: mainIn [3]: import test_name0test_name0test_name0test_name1test_name1

登录后复制

在cmd中执行python test_name0.py,结果如下:

mainmaintest_name1test_name1

登录后复制登录后复制

由此可以看出:

立即学习“Python免费学习笔记(深入)”;

(1)在python顶层解释器或直接运行的脚本中name==’main’

(2)在调用的模块中name==module name

(3)发现一个非预期的情况,就是在运行了test_name0.py的脚本后再import test_name0,或者import test_name0后再运行test_name0.py的脚本,得到的结果是

test_name0test_name0test_name1

登录后复制

mainmaintest_name1

登录后复制

而不是

test_name0test_name0test_name1test_name1

登录后复制

mainmaintest_name1test_name1

登录后复制登录后复制

将问题的关键整理后在segmentfault上提问,了解了出现此问题的原因。
即:python模块有缓存,import一次后再import,模块顶级作用域的代码不会再执行。

(4)test_name0和test_name1两个模块中的test函数是同名的,这并不会有没有什么问题,因为模块名不同而可以区分这两个test函数,但要避免模块的重名。

以上就是关于python中__ name__值的测试详细介绍的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2276320.html

(0)
上一篇 2025年2月27日 15:07:06
下一篇 2025年2月21日 10:30:35

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 用python抓取求职网站信息

    这篇文章介绍用python抓取求职网站信息 本次抓取的是智联招聘网站搜索“数据分析师”之后的信息。 python版本: python3.5。 我用的主要package是 Beautifulsoup + Requests+csv  另外,我将…

    2025年2月27日
    200
  • 一个21行Python代码实现拼写检查器的方法

    引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供非常好的拼写检查,比如你输入 speling,谷歌会马上返回 spelling。下面是用21行python代码实现的一个简易但是具备完整功能的拼写检查器。 代码 import…

    编程技术 2025年2月27日
    200
  • 17个Python奇技淫巧分享

    显示有限的接口到外部 当发布python第三方package时,并不希望代码中所有的函数或者class可以被外部import,在init.py中添加all属性,该list中填写可以import的类或者函数名, 可以起到限制的import的作…

    2025年2月27日
    200
  • python学习进阶之socket详细介绍

    Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。 网络上的两个程序通过一个…

    编程技术 2025年2月27日
    200
  • 关于python的super()的作用和原理详细介绍

    Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递。 今天我们介绍的主角是super(), 在类的继承里面super()非常常用, …

    编程技术 2025年2月27日
    200
  • 如何在Python中添加自定义模块

    一般来说,我们会将自己写的python模块与python自带的模块分开存放以达到便于维护的目的。那么如何在python中添加自定义的模块呢? 在解答这个问题之前,我们首先要明确两点: 1.严格区分包(package)和文件夹。包的定义就是包…

    编程技术 2025年2月27日
    200
  • 详解Python判断上传文件类型

    在开发上传服务时,经常需要对上传的文件进行过滤。 本文为大家提供了python通过文件头判断文件类型的方法,非常实用。 代码如下 import struct # 支持文件类型 # 用16进制字符串的目的是可以知道文件头是多少字节 # 各种文…

    编程技术 2025年2月27日
    200
  • 详解Python使用signal模块实现定时执行方法

    在liunx系统中要想每隔一分钟执行一个命令,最普遍的方法就是crontab了,如果不想使用crontab,经同事指点在程序中可以用定时器实现这种功能,于是就开始摸索了,发现需要一些信号的知识… 查看你的linux支持哪些信号:…

    编程技术 2025年2月27日
    200
  • 详解python读取与写入csv格式文件方法

    python读取与写入csv格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中。将csv文件中的数据直接读取为dict类型和dataframe是非常方便也很省事的一种做法,以下代码以鸢尾花数据为例。 cs…

    编程技术 2025年2月27日
    200
  • 解析Python常用的机器学习库

    python在科学计算中用途广泛:计算机视觉、人工智能、数学、天文等。它同样适用于机器学习也是意料之中的事。 这篇文章就列举并描述Python的最有用的机器学习工具和库。这个列表中,我们不要求这些库是用Python写的,只要有Python接…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论