import模块
一、在import模块的时候发生的事情
1、寻找模块
2、如果找到了,就开辟一块空间,执行这个模块
3、把这个模块中用到的名字都录到新开辟的空间中
4、创建一个变量来引用这个模块中 二、注意事项:
*1.模块不会被重复导入
*2.模块和文件之间的内存空间始终是隔离的
*3.模块的名字必须是符合变量命名规范的 简单模块导入实例:
import my_module
# my_module.read2()
# name = 'alex'
# my_module.read2() # in read2 youhongliang
my_module.name = 'alex'
my_module.read2() # in read2 alex
三、导入多个模块
3.1 注意事项:
1、pep8规范
# import os
# import time
# import my_module
# 内置,第三方,自定义
2、排列顺序
# import os
# import django
# import my_module
3.2 给模块起别名
import my_module as m
m.read2() # in read2 youhongliang
# 起别名之后,原来的名字就不能用了
起别名的应用
def dump(method): # (繁琐版)
if method == 'json':
import json
with open('file','w') as f:
json.dump([1,2,3],f)
elif method == 'pickle':
import pickle
with open('file', 'w') as f:
pickle.dump([1, 2, 3], f)
简化版
def dump(method):
if method == 'json': # (简化版)
import json as m
elif method == 'pickle':
import pickle as m
with open('file', 'w') as f:
m.dump([1, 2, 3], f)
3.3 模块搜索路径
import sys
print(sys.path)
import my_module
注意:
正常的sys.path中除了内置、扩展模块所在的路径之外
只有一个路径是永远不会出问题
你直接执行的这个文件所在的目录
一个模块是否被导入,就看这个模块所在的目录在不在sys.path中
如果我们在同级目录中添加一个文件件,然后在这个文件夹中添加一个模块。
直接: import my_module2 (报错) # ModuleNotFoundError
做一步处理:
import sys
sys.path.append('D:\骑士计划\第五周\Day26\glance')
import my_module2
四、两种运行一个py文件的方式
4.1 直接运行它 : cmd python xx.py(文件) pycharm 脚本
脚本运行时 __name__ == '__main__'
# 导入它 : 模块
# 模块运行:__name__ == '模块名' 4.2 语法讲解:
在模块调用中,如果只想脚本中使用的,只需要用这个语法
if __name__ == '__main__': # 作为模块时,不该有的东西放在这里
print('in my_module2') # 重要语法
print(__name__)
# 函数调用
五、模块 from ** import
from my_module import name
print(name) # youhongliang
from my_module import read2
read2() # in read2 youhongliang
5.1 在from import 的过程中发生了什么事儿
1、要找到my_module
2、开空间,执行my_module
3、所有的my_module中的名字都存储在my_module所属的空间中
4、建立一个引用name,read2分别取引用my_module空间中的名字
from my_module import name
from my_module import read2 # in mymodule 执行一次
区别:
name = 'alex'
from my_module import name
print(name) # youhongliang # name = 'alex'
from my_module import name
name = 'alex' # 直接覆盖
print(name) # alex
小技巧:
from my_module import name,read1,read2 # 可以写多个
from my_module import name as n,read1 as r1,read2 as r2 # 同时起别名
5.2 * 与__all__
from my_module import * # 指模块里的所有变量
print(name) #youhongliang
read1() # in read1
read2() # in read2 youhongliang 脚本中:
__all__ =['name','read1'] # 只有这两个可以调用
import模块的更多相关文章
- python import 模块异常问题
新项目开始了,(tornado,python) 结果出现了一个比较诡异的问题. import 自己的在conf文件夹下配置文件settings的时候, from conf.settings impor ...
- python 小技巧(import模块、查询类继承关系、安装包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
- import模块/包--软件开发规范
一. 模块 模块:就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译 ...
- python之import模块及包的调用
模块概念 在Python中,一个.py文件就称之为一个模块(Module).使用模块组织代码,最大的好处是大大提高了代码的可维护性 模块一共三种:python标准库.第三方模块.应用程序自定义模块. ...
- Python import模块
import模块 一.模块介绍 1.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能), 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:t ...
- cython 成功创建import 模块
又是因为别人代码里有这么一个部分,用到了cython,,简而言之,就是利用这个模块调用C语言,从而加速程序运行,其中具体怎么调用我还没整清楚,但基本用法差不多了解了. 1 安装:https://www ...
- import 和 from … import 模块的变量、方法引用差异
import 和 from … import 模块的变量.方法引用差异 还是上面例子中的模块 support.py: def print_func( par ): print "Hello ...
- python基础之import模块导入和包的调用
模块概念 在Python中,一个.py文件就称之为一个模块(Module).使用模块组织代码,最大的好处是大大提高了代码的可维护性 模块一共三种:python标准库.第三方模块.应用程序自定义模块. ...
- 2019-7-16 import / from...import... 模块的调用
模块调用的总结:如果你是pycharm打开文件,会自动帮你把文件根目录加到system.path中,你要调用模块直接以根目录为基准开始找.1.假如你要调用和文件根目录为同级的文件,你直接import ...
随机推荐
- python学习之----收集整个网站
如果只是从一个页面跳到另一个页面,那么网络爬虫是非常无聊的.为了有效地使 用它们,在用爬虫的时候我们需要在页面上做些事情.让我们看看如何创建一个爬虫来收 集页面标题.正文的第一个段落,以及编辑页面的链 ...
- HTTP中Get、Post、Put与Delete。了解一下!
1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数据,不会影响资源的内容,即该请求不会产生副作用.无论进行多少次操 ...
- 微信小程序连接本地接口(转)
原文地址 最近的一个项目就是微信小程序 第一次接触微信开发者工具,并进行小程序的后端开发, 于是想看一下小程序如何请求本地的后台服务接口 wx.request({ url: 'http://local ...
- 【Selenium-WebDriver问题点】chromeDriver和chrome浏览器版本之间的兼容性问题
今天早晨因为测试需求,将chrome浏览器更新到最新的65版本,结果之前用的chromeDriver测试计划,都跑不通过了, 所以就在网上找了下,mark下. 最新的chromedriver与chro ...
- mybatis foreach 循环 list(map)
直接上代码: 整体需求就是: 1.分页对象里面有map map里面又有数组对象 2.分页对象里面有list list里面有map map里面有数组对象. public class Page { pri ...
- 18.纯 CSS 创作 404 文字变形为 NON 文字的交互特效
原文地址:https://segmentfault.com/a/1190000014818274 感想: positon:absolute 和 :hover HTML代码: <!-- < ...
- <转载> FreeNAS的安装和简单配置 http://freenas.cn/?p=342
前些日子在公司搭了一个模拟生产环境的平台.由于是测试环境,资源有限只能使用虚拟机实现,所以存储这块就想到了使用FreeNAS.很早以前玩儿过几次,当时是生产环境需要上存储设备,经过对比还是选择的更可靠 ...
- JS中点击事件冒泡阻止
JS中点击事件冒泡阻止 解析: 一个div层'out',内含有一个div层'in'.如下: 两个层都绑定了点击事件,但是点击in层的时候,点击事件会出现冒泡现象,同时也会触发out层的点击事件. 但是 ...
- Redis命令操作详解
一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符 *.?.[] (2)randomkey:返回随机key (3)type key:返回key存储的类型 ...
- 浅析USB之设备枚举
当一个USB设备插入主机后,会有以下活动: 配上状态图