1、__name__属性

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
示例:

#!/usr/bin/python
# Filename: using_name.py if __name__ == '__main__':
print '程序自身在运行'
else:
print '我来自另一模块'

运行输出如下:

$ python using_name.py
程序自身在运行
$ python
>>> import using_name
我来自另一模块
>>>

说明:
每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。

2、建造你自己的模块

其实只要后缀是.py的python程序都是模块,建造模块就是写后缀是.py的python程序。
示例如下:

#!/usr/bin/python
# Filename: mymodule.py def sayhi():#模块中定义的函数
print '模块就是这样建造的.' version = '0.1' # 模块定义结束

上面的mymodule.py就是一个模块,其中定义了一个函数sayhi()和变量version,它们可以被别的程序使用。下面用一个例子说明如何在别的程序中引入该模块中的功能。
示例:

#!/usr/bin/python
# Filename: mymodule_demo.py import mymodule mymodule.sayhi()
print 'Version', mymodule.version

输出如下:

$ python mymodule_demo.py
模块就是这样建造的.
Version 0.1

说明:
1、在以上程序中我们用import mymodule引入我们自己写的mymodule.py模块
2、然后我们用mymodule.sayhi()和mymodule.version来使用mymodule.py模块中的函数sayhi()和变量version

3、要把mymodule.py文件路径包含在sys.path中。

3、dir()函数

我们可以用python内建的dir()函数去列出一个模块所定义的所有属性。这些属性是函数名、类名、变量名。
当我们为dir()提供一个模块名时,它返回该模块中定义的属性,如果我们不为dir()提供任何参数,它将返回当前模块所定义的属性。
示例如下:

$ python
>>> import sys
>>> dir(sys) # 得到一个sys中定义的属性列表
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path','modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'version', 'version_info', 'warnoptions']
>>> dir() # 得到一个当前模块中定义的属性列表
['__builtins__', '__doc__', '__name__', 'sys']
>>>
>>> a = 5 # 建立一个新的变量 'a'
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'sys']
>>>
>>> del a # 删除变量名a
>>>
>>> dir()
['__builtins__', '__doc__', '__name__', 'sys']
>>>

最新文章

  1. Application package 'AndroidManifest.xml' must have a minimum of 2 segments.
  2. 阻止a标签默认跳转事件
  3. 【转】Android之自定义Adapter的ListView
  4. 【FastJSON】解决FastJson中“$ref 循环引用”的问题
  5. 【转】C# 中访问修饰符
  6. 关于js中event的target和currentTarget的区别
  7. JNI/NDK开发指南(二)——JVM查找java native方法的规则
  8. 转-Python optionParser模块的使用方法
  9. hdu 1543 Paint the Wall
  10. cf Strings of Power
  11. MYSQL alter procedure alter function 它们只可以更改过程的特性,不可以更改过程的逻辑。
  12. js从数组中删除指定值(不是指定位置)的元素
  13. 2.3.2 EditText(输入框)详解
  14. 查询set、dict、dict.keys()的速度对比
  15. [cdqzds] Challenge4
  16. HDU 2058 The sum problem 数学题
  17. Linux入门(二)Shell基本命令
  18. LightOj 1123-Trail Maintenance(最小生成树:神级删边)
  19. maven(4)------maven核心pom.xml文件常用元素分析
  20. Nutch URL过滤配置规则

热门文章

  1. shelll脚本,根据软链接,找到真实路径
  2. vsftp配置日志及其启用本地时间
  3. vue-router介绍及简单使用
  4. LeetCode 朋友圈
  5. JS中关于clientWidth offsetWidth scrollWidth 等的含义的详细介绍
  6. sweetalert使用随笔
  7. python 学习总结4
  8. JavaScript正则表达式-断言
  9. PAT Basic 1037
  10. java null 空指针