如果想要在其他函数中重用函数,需要使用模块。模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以 .py 为扩展名。
使用模块
使用模块有两种方式:
- import
在函数中直接“import sys”就可以将模块导入。在使用时,可以用sys.path , sys.argv等方式来引入模块中的函数及变量
例如:
#!/usr/bin/python # Filename: using_sys.py import sys print('The command line arguments are:') for i in sys.argv: print(i) print('\n\nThe PYTHONPATH is', sys.path, '\n')
- from….import
如果想省略模块的文件名,而直接使用模块内的函数或变量,则可以使用这个方法。在引入模块之后使用“from sys import argv”或者“from sys import *” 这样的方式。
例如:
定义模块:
#!/usr/bin/python # Filename: mymodule.py def sayhi(): print('Hi, this is mymodule speaking.') version = '0.1' # End of mymodule.py引用模块:
#!/usr/bin/python # Filename: mymodule_demo.py import mymodule
from mymodule import version
mymodule.sayhi() print('Version', version)
模块的__name__:
每个模块都有一个名称,在模块中可以通过语句来找出模块的名称.这在一个场合特别有用:就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。
每个python模块都有它的__name__,如果它是"__main__”,这说明这个模块被用户单独运行,如果不是,说明它被别的模块引用
例如:
#!/usr/bin/python # Filename: using_name.py if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module'
输出:
$ python using_name.py This program is being run by itself $ python >>> import using_name I am being imported from another module >>>
dir()函数和del:
- dir()函数:可以使用内建的dir函数来列出模块定义的标识符。标识符有函数,类和变量。
当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供名称,它返回当前模块定义中的名称列表
- del:这个语句在运行后被用来删除一个变量/名称。包括模块定义的及当前定义的。
- del