当前位置: 首页 > 编程笔记 >

Python模块的定义,模块的导入,__name__用法实例分析

公西博实
2023-03-14
本文向大家介绍Python模块的定义,模块的导入,__name__用法实例分析,包括了Python模块的定义,模块的导入,__name__用法实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Python模块的定义,模块的导入,__name__用法。分享给大家供大家参考,具体如下:

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

什么是模块:

在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 库中搜索

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

 

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

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

目录结构:

c中内容:

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

目录结构:

d中内容:

c中如何导入d:

from d2 import d

或:

import d2.d

结果:

__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__,所以不会执行

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

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

 类似资料:
  • 每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。 使用模块的__name__ 例8.2 使用模块的__name__ #!/usr/bin/python

  • 本文向大家介绍Python hashlib模块用法实例分析,包括了Python hashlib模块用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python hashlib模块用法。分享给大家供大家参考,具体如下: 一、hashlib基本使用 python中的hashlib模块用来进行hash或者md5加密,而且这种加密是不可逆的,所以这种算法又被称为摘要算法。其支持Open

  • 本文向大家介绍Python pickle模块用法实例分析,包括了Python pickle模块用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python pickle模块用法。分享给大家供大家参考。具体分析如下: pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。 pickle.dump(obj, file[, protocol]) 序列化对象,并将

  • 本文向大家介绍Python创建模块及模块导入的方法,包括了Python创建模块及模块导入的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python创建模块及模块导入的方法。分享给大家供大家参考。具体分析如下: python学习手册中写道: 定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。 比如

  • 问题内容: 我知道标准示例:如果直接执行模块,则其全局变量定义为。但是,在文档的任何地方都找不到关于一般情况下如何定义的精确描述。该模块的文件说… 在模块内,模块名称(作为字符串)可用作全局变量的值。 …但是“模块名称”是什么意思?它仅仅是模块的名称(已删除的文件名),还是包括标准的软件包名称? 如何确定Python模块中变量的值?为了获得加分,请准确指出此操作在Python源代码中的何处执行。

  • 根据这个答案,您可以使用来使用类似这样的相对导入: 为什么相对导入不适用于sklearn。特征提取。文本 我验证了是一个具有以下功能的模块: 编辑 “不工作”,我的意思是它不导入模块。 我正在使用Python 3.4 绝对方式工作: 相对方式不:

  • 问题内容: 我已尝试找到有关最佳使用还是全面的指南。我刚开始使用Python,并且正在尝试着眼于最佳实践。 基本上,我希望有人能分享他们的经验,其他开发人员有什么喜好,以及避免遇到麻烦的最佳方法是什么? 问题答案: 和之间的区别主要是主观的。选择最喜欢的一个,并在使用中保持一致。这里有一些要点可以帮助你做出决定。 优点: - 减少维护你的import报表。无需添加任何其他导入即可开始使用模块中的另

  • 本文向大家介绍Python中random模块用法实例分析,包括了Python中random模块用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python中random模块用法。分享给大家供大家参考。具体如下: 运行结果如下: (2, 'cherry') 不管学哪个语言,我总喜欢弄个随机数玩玩。农历十一月初六,Let's Python!!! 运行结果如下: 5050 运行结果如