Python模块

初步认识

安装完python后,python自带一部分模块,自带的模块又称作内置模块。其中一部分模块在路径Lib下。(这里的文件夹可以看做包,可以把多个模块放进一个包里)

从模块的来源来讲,可以分三种:内置模块、自定义模块(自己定义的)、第三方模块 例如下载网上的django模块。

从模块的运行角度看,可以分两种:直接执行称自主模块,被导入才执行称非自主模块。

 一个类型为py的文件可以作为一个模块,模块名就是文件名。模块名可以作为全局变量使用。

使用

 在某路径建了module.py,复制下面代码

def fib(n):    # write Fibonacci series up to n
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()

def fib2(n):   # return Fibonacci series up to n
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a+b
    return result

在该路径打开解释器,导入模块,使用模块里的某个函数。

如果需要在模块里用到其他模块,需要提前导入。

一次导入n个模块的全部功能:import module1[, module2[,... moduleN]

单独导入模块的某个功能:from modname import name1[, name2[, ... nameN]]

导入模块的全部功能:from modname import * 好处是不需要模块名点出来就能用。

给模块起别名:在模块名后加 as 别名


 

模块属性:__name__

1、因为当前moduly.py模块是被导入执行的,所以它的__name__属性是模块名称

2、修改module.py ,在第一行加入 print(__name__)

解释器执行module.py模块,喔?这次是自主模块了。

 

dir函数,查看模块可以用的函数、属性等。

 

如果模块修改了,需要借助重新加载,否则找不到修改过的东西。

import importlib; importlib.reload(modulename)

模块的路径

在没有指定模块的路径时,导入时会去什么路径下找模块呢?

1、当前py脚本的同级路径,即A脚本是ALib下,则会去ALib目录下找

2、环境变量 path

3、依赖于安装时初始化的一些路径,例如上面的Lib目录。

这里有个默认查找模块路径讨论:https://bytes.com/topic/python/answers/26800-what-pythons-module-search-path

 

官网参考:https://docs.python.org/3/tutorial/modules.html

 

posted @ 2018-08-19 17:18  舒碧  阅读(305)  评论(0编辑  收藏  举报