一、在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模块的更多相关文章

  1. python import 模块异常问题

    新项目开始了,(tornado,python) 结果出现了一个比较诡异的问题. import 自己的在conf文件夹下配置文件settings的时候, from conf.settings impor ...

  2. python 小技巧(import模块、查询类继承关系、安装包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...

  3. import模块/包--软件开发规范

    一. 模块 模块:就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译 ...

  4. python之import模块及包的调用

    模块概念 在Python中,一个.py文件就称之为一个模块(Module).使用模块组织代码,最大的好处是大大提高了代码的可维护性 模块一共三种:python标准库.第三方模块.应用程序自定义模块. ...

  5. Python import模块

    import模块 一.模块介绍 1.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能), 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:t ...

  6. cython 成功创建import 模块

    又是因为别人代码里有这么一个部分,用到了cython,,简而言之,就是利用这个模块调用C语言,从而加速程序运行,其中具体怎么调用我还没整清楚,但基本用法差不多了解了. 1 安装:https://www ...

  7. import 和 from … import 模块的变量、方法引用差异

    import 和 from … import 模块的变量.方法引用差异 还是上面例子中的模块 support.py: def print_func( par ): print "Hello ...

  8. python基础之import模块导入和包的调用

    模块概念 在Python中,一个.py文件就称之为一个模块(Module).使用模块组织代码,最大的好处是大大提高了代码的可维护性 模块一共三种:python标准库.第三方模块.应用程序自定义模块. ...

  9. 2019-7-16 import / from...import... 模块的调用

    模块调用的总结:如果你是pycharm打开文件,会自动帮你把文件根目录加到system.path中,你要调用模块直接以根目录为基准开始找.1.假如你要调用和文件根目录为同级的文件,你直接import ...

随机推荐

  1. HTML中head与body标签

    一 head内常用标签 1.meta相关 #1.指定字符集 <meta charset="gbk"> #2.页面描述 <meta name="Descr ...

  2. 重识linux-循环执行的例行性工作调度

    重识linux-循环执行的例行性工作调度 1 用户的设置 1)/etc/cron.allow  可以使用的账号,在这个文件内 2)/etc/cron.deny 不可以的放在这个文件里面 allow的优 ...

  3. 18.os模块获取url后缀

    针对文件下载文件重命名文件后缀的获取,此方式只适用url里有后缀的情况(其它的要根据情况去用类似方式获取字段后缀). import os A="http://www.铜陵市建筑工程信息网.c ...

  4. Python学习笔记_week1

    一.编程语言的分类 编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言,Python是一门动态解释型的强类型定义语言. Python的优缺点 Python解释器:CPython.IPy ...

  5. shell doc

    参考: http://c.biancheng.net/view/1114.html

  6. Dubbo 暴露服务

    1. 引入dubbo依赖 dubbo 依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId&g ...

  7. CentOS 7.0安装配置Vsftp服务器步骤详解

    安装Vsftp讲过最多的就是在centos6.x版本中了,这里小编看到有朋友写了一篇非常不错的CentOS 7.0安装配置Vsftp服务器教程,下面整理分享给各位. 一.配置防火墙,开启FTP服务器需 ...

  8. 【JEECG技术文档】Jeecg高级查询器

    1. 背景 对于用户来讲查询功能按易用性分三个层次: 1)最简单查询操作是一个输入框,全文检索,如百度,后台实现技术使用搜索引擎,需要设计和建立索引,技术较为复杂,适用于文档和信息数据库检索,但是结果 ...

  9. 查看已打包app的entitlements文件内容

    执行以下命令: codesign -d --ent :- /path/to/the.app https://developer.apple.com/library/content/technotes/ ...

  10. SQL Server CLR 使用 C# 自定义存储过程和触发器

    资源来源:https://www.cnblogs.com/Brambling/p/8016060.html SQL Server CLR 使用 C# 自定义存储过程和触发器   这一篇博客接着上一篇博 ...