每个Python脚本在运行时都有一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__main__”。例如,假设文件nametest.py中只包含下面一行代码:

print(__name__)

在IDLE中直接运行该程序时,或者在命令行提示符环境中运行该程序文件时,运行结果如下:

__main__

而将该文件作为模块导入时得到如下执行结果:

>>> import nametest

Nametest

利用“__name__”属性即可控制Python程序的运行方式。例如,编写一个包含大量可被其他程序利用的函数的模块,而不希望该模块可以直接运行,则可以在程序文件中添加以下代码:

if __name__ == ‘__main__’:

print(‘Please use me as a module.’)

这样一来,程序直接执行时将会得到提示“Please use me as a module.”,而使用import语句将其作为模块导入后可以使用其中的类、方法、常量或其他成员。

附:编写自己的包与模块

在包的每个目录中都必须包含一个__init__.py文件,该文件可以是一个空文件,仅用于表示该目录是一个包。

__init__.py文件的主要用途是设置__all__变量以及所包含的包初始化所需的代码。其中__all__变量中定义的对象可以在使用from …import *时全部正确导入。

python中__name__属性的取值_Python脚本的“__name__”属性相关推荐

  1. python中bool函数用法_在python中bool函数的取值方法

    bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. 1.当对数字使用bool函数时,0返回假(False),任何其 ...

  2. python中关系运算符惰性求值_python对象属性惰性取值

    python面向对象进阶 在知乎上面看到这个如何让python对象属性具有惰性求值的能力,认真学习了一番,记录一下. __setattr__.__getattr__.__delattr__ class ...

  3. python中long类型的取值范围_java基本数据类型取值范围

    在JAVA中一共有八种基本数据类型,他们分别是:byte.short.int.long.float.double.char.boolean 整型 其中byte.short.int.long都是表示整数 ...

  4. python中如何修改字符串的值_python中修改字符串的5种方法!

    # str只读,那么可使用以下的方法修改 # 修改字符串常见的有五种你只要掌握一种既可 # 1.第一种是'替换法' str4 = "嘿爱多" # 字符串的元素不能修改 # str4 ...

  5. Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)

    属性取值和赋值过程 一切皆是对象,类型也是对象. 对象包含一个__class__属性指向其所属类型. 对象包含一个__dict__属性指向其所包含的成员(属性和方法). 取值过程(下面是伪代码) 1 ...

  6. python中os.system.获取输出信息_python中os.system()的返回值

    [python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回. 问题: /bin/xxx.py是一个返回码为1的 ...

  7. linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案

    Python中使用subprocess.Popen返回值乱码解决方案 问题描述 在python 2.7中,使用subprocess.Popen()调用*nix命令,并通过管道,获取其输出,并将其返回值 ...

  8. php给textarea赋值,html中textarea赋值与取值问题详细讲解

    html中textarea赋值与取值问题详细讲解2017-10-17 21:49 许多小伙伴在编程的时候,容易搞错一个问题,就是对textarea赋值. 因为第一感觉就是textarea和input一 ...

  9. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

最新文章

  1. linux 3.4内核初始化,S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
  2. 9本java程序员必读的书(附下载地址)
  3. 五个温度带的分界线_亚热带,暖温带,到底是些什么带?
  4. python打开excel窗口_简单介绍python在CMD界面读取excel所有数据
  5. 创建 tomcat 服务的镜像
  6. 网络之华为USG6000防火墙日志清理
  7. SU草图大师必备实用插件,拿走不谢!
  8. wnidows查看电脑序列号命令
  9. TI C64X+通用库函数使用手册
  10. 火狐插件 打开html 死机,Firefox火狐Flash插件卡死问题完美解决方法
  11. Variable used in lambda expression should be final or effectively final
  12. excel如何晒出重复数据_怎么筛选出excel中重复数据
  13. 苹果手机聊天记录恢复方法有哪些?这2个恢复技巧值得收藏
  14. 【原生微信小程序】 组件的使用,权限弹窗
  15. 九宫格图片怎么操作?这里有你想要的方法
  16. 改编的一个滑动门代码
  17. c语言main方法返回至爱,extern C的用法解析
  18. java中<<与>>的意思
  19. 人民币金额大写转数字
  20. transferTo 方法

热门文章

  1. java 环境网站404_配置JavaWeb项目环境,修改jdbc配置文件,浏览器报404错误,不修改可以正常部署,jdbc没有改错...
  2. 趣谈网络协议笔记-二(第十二讲)
  3. DQN 处理 CartPole 问题——使用强化学习,本质上是训练MLP,预测每一个动作的得分...
  4. lucene底层数据结构——底层filter bitset原理,时间序列数据压缩将同一时间数据压缩为一行...
  5. ES6中定义的类和对象
  6. 通过StringBuilder的reverse()实现倒序
  7. php设计模式八-----装饰器模式
  8. Vue.js 是什么
  9. 2017-2018-1 我爱学Java 第一周 作业
  10. const constptr 和引用的盲点(未解决)