Python3 基础 —— 模块 Module 介绍

1、模块的作用
     在交互模式下输出的变量和函数定义,一旦终端重启后,这些定义就都不存在了,为了持久保存这些变量、函数等的定义,Python中引入了模块(Module)的概念。一个Python模块其实就是一个脚本文件,具有后缀“.py”,例如 hello.py 就是一个模块文件名,和普通文件一样可以被永久保存在本地存储磁盘中。

2、模块的内容
     Python模块中存放的是一些程序代码,例如,变量定义、函数定义或是代码语句。下面是hello.py模块的内容,其中有一个变量 a,一个函数 fun(),和一个打印语句。
# -*- coding:UTF-8 -*-
#! /usr/bin/python3
a = [1, 2, 3]
def fun():
        return ‘fun()‘
print(‘hello‘, fun(), a)
     这里介绍一个模块属性 __name__ ,该属性存储了当前模块的名称,比如,上面的 hello.py 其__name__就是 ‘hello.py‘

3、模块的使用
     (1)第一种方式时将模块当做脚本执行,模块中的代码语句会得到执行
wuhui@wuhui-H55M-S2H:~/Desktop$ python3 hello.py
hello fun() [1, 2, 3]
     (2)第二种方式时将模块导入,然后使用导入模块中定义的变量、函数等
>>> import hello
>>> hello.a
[1, 2, 3]
>>> hello.fun()
‘fun()‘
     使用"import module"导入模块方式时,被导入模块不能带后缀;使用导入模块中定义的变量、函数时,必须使用模块名作为前缀,如"hello.a"而不是直接使用"a"。如果感觉这样麻烦的,可以使用下面的方式,将模块中所有的定义信息全部导入。
>>> from hello import *
>>> a
[1, 2, 3]
>>> fun()
‘fun()‘

4、模块的相关信息
     每个模块都有自己的定义信息,包括变量、函数等以及一些“与生俱来”的内建变量,这些可以通过Python内建函数 dir() 来查看。

直接在终端下输出dir(),输出当前环境下的变量名
>>> dir()
[‘__builtins__‘, ‘__doc__‘, ‘__loader__‘, ‘__name__‘, ‘__package__‘, ‘__spec__‘]
导入上面的 hello.py 模块后,使用dir()查看,不仅输出了默认的的变量名,还输出了hello.py中我定义的变量a和函数fun的名称
>>> import hello
>>> dir(hello)
[‘__builtins__‘, ‘__cached__‘, ‘__doc__‘, ‘__file__‘, ‘__loader__‘, ‘__name__‘, ‘__package__‘, ‘__spec__‘, ‘a‘, ‘fun‘]
输出模块名
>>> print(hello.__name__)
hello

5、模块的搜索路径
     当导入模块时,Python按照一定的搜索顺序在指定的目录下搜索模块,如果找到则导入模块,否则会引发异常。例如,执行 “import hello”导入hello.py模块时,Python解释器首先根据模块名搜索内建模块;如果没有找到,则会去 sys.path 变量所列出的目录下搜索,sys.path的默认目录如下:
     (1)输入脚本所在目录(或当前目录,如果没有指定导入脚本,如 import ×)
     (2)环境变量 PYTHONPATH 所指定的目录(这个与系统环境变量中的PATH语法相同)
     (3)安装的目录(默认)
    如果导入的脚本是一个符号连接(Windows上的快捷方式),搜索目录是符号链接所连接的原始文件所在目录,而非符号连接所在目录。在Python解释器初始化之后,可以在程序中修改 sys.path

参考:
[1] The Python Tutorial https://docs.python.org/3/tutorial/modules.html

Python3 基础 —— 模块 Module 介绍,布布扣,bubuko.com

Python3 基础 —— 模块 Module 介绍

上一篇:java项目组会议纪要


下一篇:Java SE和Java EE应用的性能调优