Day06-Python3模块

1、概述: 

      前面基本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。即引入外部的python文件供本文件使用。

2、import语句:

java、js中都有用import,python中import的使用和js是否相似,都实现了模块化。

想使用 Python 源文件,只需在另一个源文件里执行 import 语句,将外部的源文件导入本程序。

例如:

import support
#support.py文件中包含print_func()方法
support.print_func("Runoob")

  

如果你打算经常使用一个函数,你可以把它赋给一个本地的名称:

>>> fib = fibo.fib
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

  

3、form...import...语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。

例如:

# 将fibo.py文件中的fib,fib2函数导入,并不会导入整个文件 
from fibo import fib, fib2

  

导入整个文件:

from modname import *

  这与import modename作用一样。

4、_name_属性

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

每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。__name__ 与 __main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。

5、dir()函数

内置的函数 dir() 可以找到模块内定义的所有名称。

6、包

一提到包,就会想到java中的包。没错,python中的包也是一种管理 Python 模块命名空间的形式。

在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。

目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。

最简单的情况,放一个空的 :file:__init__.py就可以了。当然这个文件中也可以包含一些初始化代码或者为(将在后面介绍的) __all__变量赋值。

用户可以每次只导入一个包里面的特定模块,比如:

import sound.effects.echof 

这就是导入了sound.effects下的echo。使用时,必须使用全名:

sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)

  

当然,也可以使用import...from...来导入子模块:

from sound.effects import echo

  这同样会导入子模块: echo,并且他不需要那些冗长的前缀,所以他可以这样使用:

echo.echofilter(input, output, delay=0.7, atten=4)

  如果直接导入一个函数或者变量,那么就会自动导入该函数或者变量所属的模块,并且可以直接使用该函数或者变量,不用通过模块名称访问。

 

posted @ 2021-09-25 19:34  小绵杨Lamb  阅读(32)  评论(0)    收藏  举报