python怎么导入文件-Python模块导入详解

定义

模块:用来从逻辑上组织Python代码(变量、函数、类、逻辑)去实现一个功能。本质就是.py结尾的Python文件。

包:用来从逻辑上组织模块的(可以放一堆模块在目录下)。本质就是一个目录(必须带有一个__init__.py文件)。

导入模块

导入单个:

import 模块名

导入多个:

import 模块名1,模块名2

导入模块中所有代码:

from 模块名 import *

import导入于from 模块名 import *导入在调用上的区别:

module.function()

function()

跨目录导入包:

import sys

print(sys.path) #python会去哪些目录下找模块,是一个列表

Module_Dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #获取到模块目录

sys.path.append(Module_Dir)#把模块目录加到sys.path列表中

import 要导入的模块

代码说明

module_test.py

def Index():

print("Welcome to Index Page.")

main.py

# import module_test

from module_test import * #这种是把模块中的代码复制到了这个py脚本中

from module_test import Index as Index_module #如果导入的模块中函数与该py脚本中的函数名一样,使用as别名

def Index():

print("Main Page")

# module_test.Index() #这样调用是不行的

Index()

Index_module()

输出结果如下:

1853528-20200214141701894-490738868.png

import本质

就是把Python文件解释一遍。

比如我们导入requests模块,requests = requests模块中的所有代码,所以调用的时候需要requests.function()。

import requests

而使用from导入的时候,是把模块中的代码复制到了这个py脚本中,所以调用的时候直接使用函数。

导入包

导入包的本质是去执行包下的__init__.py文件。

import packagename

如果调用包中的模块呢?

因为本质是读取__init__.py文件,因此在__init__.py文件写要导入的模块(相对导入)。

from . import 模块名

调用的话就是

packagename.模块名.function()

1853528-20200214150148389-944871238.png

1853528-20200214150217996-1094754804.png

1853528-20200214150231824-273741184.png

1853528-20200214150302598-1934227125.png

1853528-20200214150330358-698701086.png

代码演示

1853528-20200214143154456-224381816.png

__init__.py:

print("in the package")

main.py:

import package

运行效果:

1853528-20200214143240167-384223996.png

导入优化

import导入:使用多次模块中的函数的话,会重复找路径的动作,效率会低,因此可以使用from方法导入来优化脚本效率。

module.function()

模块的分类

标准库(也叫内置模块)

开源模块(也叫第三方模块)

自定义模块

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值