python-模块-模块导入(五)

1.什么是模块?

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py 。你可以简单的理解成,一个.py文件就是一个模块。

2.模块存在的意义

那些有着相似作用的函数,比如和时间相关的,和文件路径相关的,和系统环境相关的,他们所能处理的问题有着紧密的联系,把他们设计成一个模块,在使用的时候,便于查找,也便于维护。

这就好比,你家里的抽屉,里面存放的物品,大多数情况下都是按类别和用途分层存储的,这样,找物品的时候就比较的方便。

3.模块的引入

模块引入语法:

import module1[, module2[,... moduleN]]

4.模块示例

4.1 自定义一个模块 whiletest.py

#!/usr/bin/python;
# coding=utf-8;
import random;
def gameguess():

    numbers = random.randint(20,30);
    print numbers; #要被猜测的数,方便看到
    flag = True;
    while flag:
        guess = input("请输入一个数字(20到30)进行猜测(猜中游戏则结束):");
        if guess == numbers:
            print "guess is true";
            flag = False;
        elif guess < numbers:
            print "输入的数字太小!!!";
        else:
            print "输入的数字太大!!!";
    else:
        print "while循环结束!!!";
    print "game over";

4.2 import 引入模块,执行。

#coding=utf-8;
import whiletest;
whiletest.gameguess();

在调用模块中的函数时,必须这样引用:

模块名.函数名

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的所有目录的列表。

4.3 from ...import 引入模块函数,执行。

from modname import name1[, name2[, ... nameN]]

4.4 from...import *

把一个模块的所有内容全都导入到当前的命名空间也是可行的.

from modname import *

如下代码所示:

模块代码 modul.py

#coding=utf-8;
def firstfunction():
    print "I`m first"
def secondfunction():
    print "I`m second"
def lastfunction():
    print "I`m last";

引入模块from 模块 import *所有函数

#coding-utf-8;
from modul import *;
firstfunction();
secondfunction();
lastfunction();

执行结果:

I`m first
I`m second
I`m last

5.搜索路径

当你导入一个模块,Python 解析器对模块位置的搜索顺序是:

  • 1、当前目录
  • 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
  • 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。

模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

6.PYTHONPATH变量

作为环境变量,PYTHONPATH 由装在一个列表里的许多目录组成。PYTHONPATH 的语法和 shell 变量 PATH 的一样。

在 Windows 系统,典型的 PYTHONPATH 如下:

set PYTHONPATH=c:\python27\lib;

在 UNIX 系统,典型的 PYTHONPATH 如下:

set PYTHONPATH=/usr/local/lib/python

 

posted @ 2022-09-21 17:17  家乐福的搬砖日常  阅读(32)  评论(0编辑  收藏  举报