Python 模块化 import 语句介绍(一)
用法:
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 语句介绍(一)的更多相关文章
- Python 模块化 from .. import 语句介绍 (二)
from语句 例一. from pathlib import Path,PosixPath print(dir()) print(Path) print(PosixPath) 运行结果: ['Path ...
- python的import语句
1.import作用 import跟C/C++中的#include作用有点类似,都是为了调用定义在其他文件中的变量.函数或者类,但实现的区别很大. C/C++中如果a.cpp include了b.h那 ...
- python from…import* 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目.然而这种声明不该被过多地使用. ...
- Python import语句导入模块语法[转]
Python import语句导入模块语法 社区推荐:掘金是国内最活跃的技术社区,我们每日有优质Python开发实例分享,海量python开源库推送.来掘金,和更多懂技术的小伙伴交流. pytho ...
- Python中import的使用
python中的import语句是用来导入模块的,在python模块库中有着大量的模块可供使用,要想使用这些文件需要用import语句把指定模块导入到当前程序中. import语句的作用 import ...
- Python中的import语句
Python中的import语句是导入一个文件,这条语句主要做三件事: 1 通过一定的方式,搜寻要导入的文件: 2 如果需要,就编译这个文件: 3 运行这个文件 但是,需要注意的是,所有这三个步骤,都 ...
- Python模块_import语句_from...import 函数名_from ... import *
Python模块:包含了所有定义的函数和变量的文件,后缀名为 .py 将某些方法存放在文件中,当某些脚本 或 交互式需要使用的时候,导入进去. 导入的文件,就称为模块.导入之后就可以使用导入的文件的函 ...
- Python中from … import …语句
from - import -语句可以让你从模块中导入一个指定的部分到当前模块
- [转] Python的import初探
转载自:http://www.lingcc.com/2011/12/15/11902/#sec-1 日常使用python编程时,为了用某个代码模块,通常需要在代码中先import相应的module.那 ...
随机推荐
- Echarts 使用asp.net +ashx+ajax 实现 饼图、柱形图后台交互
向上效果图 前端code /* * ------------------------------------------------------------------ * module-inform ...
- 四:SpringCloud-Hystrix
八:Hystrix断路器 1. 概述 1.1 分布式系统面临的问题 ==复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败.== 上图中的请求需要调用A, P, H ...
- 十六、Condition等待通知
一.简介 我们可以使用syncronized和wait,notify实现等待通知.而syncronized的高级实现Lock,也可以实现等待通知,需要构造Condition的实例对象. JDK文档:h ...
- netty源代码编译_mac os
工作中会用到netty,有随手整理笔记的习惯,故学习整理下,之前看过了理论知识,接下来就看下源码了,先来编译下 个人 fork git:https://github.com/ending06/nett ...
- spring data jpa(一)
第1章 Spring Data JPA的快速入门 1.1 需求说明 Spring Data JPA完成客户的基本CRUD操作 1.2 搭建Spring Data JPA的开发环境 1. ...
- Redis-Map
Redis Map 存储K-V键值对.(跟Java的Map类比) 哈希表结构: typedef struct dictht { dictEntry **table; //哈希表数组 unsigned ...
- springcloud 实战 网关zuul使用中遇到的相关问题
springcloud 实战 网关zuul使用中遇到的相关问题 1.网关zuul使用时,跨域问题在网关中配置pre过滤器: response.setHeader("Access-Contr ...
- AngularJS+RequireJs实现动态加载JS和页面的方案研究【下】
about.js: [html] view plain copy 在CODE上查看代码片派生到我的代码片 define(['app'], function(app) { app.controller( ...
- js如何获取response header信息
信息转自网上 普通的请求JS无法获取,只有ajax请求才能获取到. $.ajax({ type: 'HEAD', // 获取头信息,type=HEAD即可 url : window.location. ...
- 微服务实战(三):以MySQL为例,从原理上理解那些所谓的数据库军规
原文链接:微服务化的数据库设计与读写分离(来源:刘超的通俗云计算) 数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向 ...