python中import和from详解区别

        python模块和包的作用是管理python项目的代码,避免命名冲突等问题。同时有利于项目开发,进行模块化编程。

        模块实现之后,可以重复调用。我们只需要使用自己或者别人的模块,像搭积木一样搭建自己的程序。

目录

一,基础概念深入理解

1.1 什么是模块module?

1.2 什么是包?

1.3 包的嵌套(子包)

1.4 包中__init__.py的作用

二,import的用法

2.1 import 模块

2.2 import 包

2.3 import 包.子包

2.4 import 包.模块

三,from……import的用法

3.1 from 模块 import 模块中的类名,常量,函数

3.2 from 包 import 子包

3.3 from 子包 import 子子包

3.4 from 包.模块 import 函数,类名,常量

四,其他注意点

4.1 导入包实质上是执行__init__.py文件

4.2 使用sys.path查看解释器会去哪里找包

4.3 绝对导入和相对导入

4.4 导入模块时形成的链式导入


一,基础概念深入理解

1.1 什么是模块module?

        一般常见的.py文件就是一个python模块。另外:.pxd,.pyi,.pxc,.so,.dll,.pyc等都是python的模块。

        模块被import语句引入之后,比如import os,变量os就与os模块进行了绑定。一个module对象拥有__name__,__doc__等属性。通过 __doc__ 可以获得模块的文档字符串的内容;通过特殊变量 __name__ 可以获取模块的名称。在正常情况下,模块名字对应源文件名。 仅有一个例外,就是当一个模块被作为程序入口时(主程序、交互式提示符下),它的__name__ 的值为 __main__ 。

        sys.modules是一个列表,里面记录了python解释器预加载的一些模块,比如os,os.path等。注意:os.path与os的区别就是在os模块的源码里面指定了一个os.path来指向一些处理路径的函数,于是我们可以把os.path当作模块使用。

1.2 什么是包?

        把一些模块放进一个文件夹,并在这个文件夹中添加一个__init__.py文件,这个文件夹就成了一个python包。

1.3 包的嵌套(子包)

        一个包中如果还有其他包,则称包中的包为子包。

1.4 包中__init__.py的作用

         __init__.py 的三个核心作用:1 ,作为包的标识,不能删除。2 ,导入包实质是执行__init__.py 文件,可以在 __init__.py 文件中做这个包的初始化、以及需要统一执行代码、批量导入。

二,import的用法

2.1 import 模块

import os,os.path,time

2.2 import 包

import numpy

2.3 import 包.子包

import numpy.random
import numpy.random as npr
# 多级包这么写:a.bb.ccc.ddd……

2.4 import 包.模块

import numpy.f2py.auxfuncs

三,from……import的用法

3.1 from 模块 import 模块中的类名,常量,函数

from threading import Thread
from time import sleep
from math import pi

3.2 from 包 import 子包

from numpy import random

3.3 from 子包 import 子子包

from numpy.random import tests
from numpy import random.tests # 这种写法错误,原因就是tests属于random包,而且numpy包下也没有random.tests这个包

3.4 from 包.模块 import 函数,类名,常量

from numpy.random import randint,randn

四,其他注意点

4.1 导入包实质上是执行__init__.py文件

        只有使用import package这种形式才会执行__init__.py。

4.2 使用sys.path查看解释器会去哪里找包

import sys
for i in sys.path:
    print(i)

4.3 绝对导入和相对导入

        绝对导入是指从sys.path中的文件夹开始寻找并导入。

        相对导入指的是从当前.py文件所在目录开始向上一级或者下一级目录进行寻找并导入。

4.4 导入模块时形成的链式导入

        举例:a.py。import math。

        b.py。import a。

        则:在b模块中print(a.pi)将打印出3.1415926……

  • 7
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值