用法:

import 模块1[,模块2,模块3...]

os 顶级模块
os.path 非顶级模块
as 相当于重命名

import 的本质:

解释器负责模块单独加载,单独初始化,生成一个模块对象,当前作用域生成一个同名标识符,映射到模块对象上,然后就可以通过这个标识符来访问模块对象的资源。并不是直接引用模块,或把模块的源码加载到当前空间。

在HTML语言中include的意思是直接将其它文件的源码包含进来,生成一个新的源码文件。

例1:

import functools
print(dir())
print(functools)
print(functools.wraps) 运行结果:
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'functools']
<module 'functools' from 'C:\\Python\\lib\\functools.py'> //这个模块对象是一个module模块类型
<function wraps at 0x0000020A133F1D90>
[Finished in 0.4s]

  

导入之后能用 "." 来调用模块的类、方法、属性,是因为模块被初始化成了一个对象。

例2:

import os.path
print(dir())
#path. #错误用法,这种导入方式不能使用使用非顶级模块名称直接调用,但当使用as语句时可以使用
os.path.exists() 运行结果:
[..., 'os']

  

例3:

import os.path as p
print(dir())
print(p.__name__) 运行结果:
[..., 'p']
ntpath
[Finished in 0.3s]

  

总结:

1. 当直接导入顶级模块时(如 import os),解释器负责单独加载模块,初始化模块,生成一个模块对象,并绑定在当前命名空间的一个同名的标识符。

使用时,需要使用 “模块名.方法()” 的格式。

2. 当导入的是非顶级模块时(如 import os.path),只会在当前命名空间生成顶级模块的对象标识符,并不会生成path标识符。

使用时,也只能通过 “os.path.exists()” 的完整层级关系使用。

3. 当导入的非顶级模块使用了as 语句(如 import os.path as p)时,当前命名空间绑定的是 "p" 这个对象标识符。

使用时,就可以通过 “p.exists()” 的方式来使用模块资源。

Python 模块化 import 语句介绍(一)的更多相关文章

  1. Python 模块化 from .. import 语句介绍 (二)

    from语句 例一. from pathlib import Path,PosixPath print(dir()) print(Path) print(PosixPath) 运行结果: ['Path ...

  2. python的import语句

    1.import作用 import跟C/C++中的#include作用有点类似,都是为了调用定义在其他文件中的变量.函数或者类,但实现的区别很大. C/C++中如果a.cpp include了b.h那 ...

  3. python from…import* 语句

    把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目.然而这种声明不该被过多地使用. ...

  4. Python import语句导入模块语法[转]

    Python import语句导入模块语法 社区推荐:掘金是国内最活跃的技术社区,我们每日有优质Python开发实例分享,海量python开源库推送.来掘金,和更多懂技术的小伙伴交流.   pytho ...

  5. Python中import的使用

    python中的import语句是用来导入模块的,在python模块库中有着大量的模块可供使用,要想使用这些文件需要用import语句把指定模块导入到当前程序中. import语句的作用 import ...

  6. Python中的import语句

    Python中的import语句是导入一个文件,这条语句主要做三件事: 1 通过一定的方式,搜寻要导入的文件: 2 如果需要,就编译这个文件: 3 运行这个文件 但是,需要注意的是,所有这三个步骤,都 ...

  7. Python模块_import语句_from...import 函数名_from ... import *

    Python模块:包含了所有定义的函数和变量的文件,后缀名为 .py 将某些方法存放在文件中,当某些脚本 或 交互式需要使用的时候,导入进去. 导入的文件,就称为模块.导入之后就可以使用导入的文件的函 ...

  8. Python中from … import …语句

    from - import -语句可以让你从模块中导入一个指定的部分到当前模块

  9. [转] Python的import初探

    转载自:http://www.lingcc.com/2011/12/15/11902/#sec-1 日常使用python编程时,为了用某个代码模块,通常需要在代码中先import相应的module.那 ...

随机推荐

  1. 一、JDBC基础示例

    一.简介 JDBC全称叫做Java database connectivity,直译为Java语言的数据库连接.它主要针对于支持结构化查询语言(SQL)的数据源,与Java程序连接并操作数据. JDB ...

  2. 提交表单时,post方式无法提交(一种情况)

    tomcat6,设置文件上传不限制大小maxPostSize="0" 但是在tomcat7及以后版本,应设置为小于0,如maxPostSize="-1"  否则 ...

  3. 撩课-Web大前端每天5道面试题-Day11

    1. 如何手写一个JQ插件? 方式一: $.extend(src) 该方法就是将src合并到JQ的全局对象中去: $.extend({ log: ()=>{alert('撩课itLike');} ...

  4. Java基础——String

    前言 从去年八月末开始工作一年了,有了大半年的java开发经验,自认为比在大学时期编码能力强了很多,但是基础方面概念模糊的地方感觉越来越多了 (:´д`)ゞ 所以,我准备把这些问题以及工作中遇到的问题 ...

  5. hdu 1251 统计难题 字典树第一题。

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  6. Redis-跳跃表

    相当于Redis 中的 sorted set 跳跃表节点结构: typedef struct zskiplistNode { struct zskiplistNode *backward;  //后退 ...

  7. composer gitlab 搭建私包

    一.建立私包git 1.执行composer init 根据提示生成composer.json 2.编辑composer.json 目录格式 { "name": "iar ...

  8. C#学习笔记-代理模式

    题目:A追B,但是羞于表示,所以A通过C给B一直送礼物以讨得欢心. 分析: 根据就分为三个类,SchoolGirl一个类,这个类只需要获得名字就好了:Pursuit一个类,这个类需要实现送礼物这个方法 ...

  9. jQuery全能图片滚动插件

    插件开发背景 随着前端开发领域越来越受到重视,前端开发也变得越来越火热.各种优秀的前端组件层出不穷.尤其是jQuery插件,很多前端组件都是基于jQuery开开发的. 图片滚动是前端开发中可以说是非常 ...

  10. swiper动态改变滑动内容

    假设当前显示的是1,往左滑动一个递减1,往右滑动一个递增1 body下面添加如下代码 <div class="swiper-container temp"> <d ...