8.什么是模块,模块的导入,__name__

Posted 知识补全计划

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.什么是模块,模块的导入,__name__相关的知识,希望对你有一定的参考价值。


相关内容:

  • 什么是模块
  • 模块的导入
    • 模块的导入
    • 自模块的导入
      • 同级目录导入
      • 不同级目录导入
        • 目录内导入目录外
        • 目录外导入目录内
  • __name__

 

首发时间:2018-02-04 15:23

修改:

  1. 2018-02-20 14:50
    1. 新增了前言“相关内容”
    2. 增加了对什么是模块的少量描述细节
    3. 模块导入中不同目录导入新增“目录外的导入目录内的”


什么是模块:

在Python中,模块就是一个个方法和类的仓库,如果我们想要使用某个模块中的某个方法或类,那么我们就需要导入对应的模板。

【python有内置方法、类,所以有些方法我们并不需要导入模块】

 

模块的使用:模块.函数 ,     模块.类

#函数
import math
print(math.sqrt(3))
#类
import threading
a=threading.Thread()
print(a)


模块的导入:

 

  • 模块导入:

    • import 模块名
    #import 模块名
    import math
    print(math.sqrt(9))
    • from…import 语句:从模块中导入一个指定的部分,如类、方法,其中from…import * 代表导入全部内容
#from 模块名 import 类名、方法名
from collections import Iterable 
print(isinstance("abc",Iterable))
print(isinstance([1,2,3],Iterable))
  • from…import导入的时候还能给导入的部分起个自定义的名字:如:from … import funcA as fa

 

  • 自模块导入:

Python import 的搜索路径

1.在当前目录下搜索该模块

2.在环境变量 PYTHONPATH 中指定的路径列表中依次搜索 【可以从sys.path中获取】

import sys
print(sys.path)

----------
运行结果:
[\'J:\\\\HardWork\\\\Code\\\\python\', 
\'J:\\\\HardWork\\\\Code\\\\python\',
 \'I:\\\\python3\\\\python36.zip\',
 \'I:\\\\python3\\\\DLLs\', 
\'I:\\\\python3\\\\lib\',
 \'I:\\\\python3\', 
\'I:\\\\python3\\\\lib\\\\site-packages\']

3.在 Python 安装路径的 lib 库中搜索

    • 同级目录导入:直接导入

 image_thumb

image_thumb[2]

image_thumb[4]

 

 

 

    • 不同级目录导入:将对应目录加入到sys.path中,再import

      • 目录内的b导入目录外的c

目录结构:image

c中内容:image

b中如何导入c:

import sys,os

print(__file__)##这是当前文件的绝对路径
parent_dir=os.path.dirname(__file__)##获得当前文件的目录
pp_dir=os.path.dirname(parent_dir)
sys.path.append(pp_dir)
# print(sys.path)
import c     #要导入c,必须将diff_dir加入sys.path中

 

 

      • 目录外的c导入目录内的d

目录结构:image

d中内容:image

c中如何导入d:

from d2 import d

或:

import d2.d

结果:image

 


__name__:

由于模块既可以被导入,也可以被直接运行,为了区分什么是直接运行时运行的内容,所以有了__name__:

 

当直接运行时,__name__是__main__:

print("import C done")
print(__name__)

if __name__==\'__main__\':
    print("direct run")

---------------
运行结果:
import C done
__main__
direct run

当用于导入时,__name__是当前导入的模块名,由于__name__不等于__main__,所以不会执行image_thumb[7]

import sys,os

# print(__file__)##这是当前文件的绝对路径
parent_dir=os.path.dirname(__file__)##获得当前文件的目录
pp_dir=os.path.dirname(parent_dir)
sys.path.append(pp_dir)
# print(sys.path)
import c     #要导入c,必须将diff_dir加入sys.path中




------------------
运行结果:
import C done
c

 

 

 


以上是关于8.什么是模块,模块的导入,__name__的主要内容,如果未能解决你的问题,请参考以下文章

模块和包

python导入模块

Python代码中的if __name__ == ‘__main__‘的作用是什么?

模块的 __name__

python导入模块

113.模块原则