一、在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. .NET/C#发起GET和POST请求的几种方法

    using System.Net; GET:   1 2 3 var request = (HttpWebRequest)WebRequest.Create("http://www.lead ...

  2. Django中的视图

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  3. 为什么TCP比UDP可靠真正原因,以及并发编程的基础问题

    一  为什么TCP协议比UDP协议传输数据可靠: 我们知道在传输数据的时候,数据是先存在操作系统的缓存中,然后发送给客户端,在客户端也是要经过客户端的操作系统的,因为这个过程涉及到计算机硬件,也就是物 ...

  4. (转)利用 SVG 和 CSS3 实现有趣的边框动画

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  5. GNU C语言开发环境

    1. GNU C 编译器 2. GNU make 项目管理工具 3. 创建和使用函数库 4. GNU C 函数库(glibc) 1.GNU C 编译器 使用 c语言 编写的代码,运行前必须经过编译和链 ...

  6. ios-复制字符串到剪贴板

    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = self.label.text;

  7. python中的lstrip、rstrip、strip

    lstrip()移除左侧空白符 rstrip()移除右侧空白符 strip()移除两边的空白符 1 a = " hello world" 2 a1 = a.lstrip()3 pr ...

  8. 网站优化--减少HTTP请求

    发送HTTP请求需要经过几个过程 域名解析--TCP连接--发送请求--等待--下载资源--解析时间 这其中需要花费一定时间,因此,尽可能的需要减少网站的HTTP请求,方法有以下几种: 1 . css ...

  9. Linux 远程登录配置

    如果使用FlashFxp的sftp无法登陆,提示SSH 错误: 协商认证模式失败,也同样这样操作 修改你的ssh配置文件 配置文件路径如:/etc/ssh/sshd_config PasswordAu ...

  10. Navicat Premium 连接Oracle 数据库(图文教程)

    一.需要准备的软件 Navicat premium 32位 官方下载地址:http://www.navicat.com.cn/products/navicat-premium Instant Clie ...