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 ...
随机推荐
- web框架原理
web框架的原理: 所有的web应用其实本质上就是socket服务端,而我们的浏览器就是socket客户端. 那么知道了这个之后我们就可以基于socket来写一个我们的服务端: import sock ...
- spring启动找不到spring.liveBeansView.mbeanDomain配置
做项目时,启动tomcat报错 JNDI lookup for name [spring.liveBeansView.mbeanDomain] threw NamingException with m ...
- python-设计模式:抽象类
抽象类:用来分离主体框架和局部实现,或将共用和定制解藕.从抽象类继承必须实现所有层级未被实现的抽象方法(被装饰器abstractmethod装饰的方法),否则无法创建实例. 定义抽象类,必须继承ABC ...
- 登录iOS Dev Center
打开网站iOS Dev Center使用苹果开发者账号登录iOS Dev Center:登录成功后在页面右侧选择“Certificates, Identifiers & Profiles”:在 ...
- jl1.如何设置元素的宽高包含元素的边框和内边距
方法一: 文档地址:http://www.w3school.com.cn/cssref/pr_box-sizing.asp CSS3 box-sizing属性: box-sizing: bord ...
- RDD编程接口
Spark中提供了通用接口来抽象每个RDD,这些接口包括: 1.分区信息 2.依赖关系 3.函数,基于父RDD计算方法 4.划分策略和数据位置的元数据
- markdown的试用
因为markdown,我接触到latex,因为latex,我花了几个月去看相关的书籍 我看了以下相关的资料 1.<LaTeX入门> 刘海洋 2.英文 TeX - LaTeX Stack E ...
- linux crontab 保证php守护进程运行
写好php脚本.建议定期检测内存占用,核心逻辑就不写了.这个跟业务有关. if(memory_get_usage()>100*1024*1024){ exit(0);//大于100M内存退出程序 ...
- day03-变量
Python中的变量类型有: int:带正负号的整数long:在python2中表示长整数,在python3中被放弃complex:复数str:字符串True,False:布尔list:列表dict: ...
- day02-格式化输出
python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %%百分号标记%c字符及其ASCII码%s字符串%d有符号整数(十进制)%u无符号整数(十进制)% ...