模块的四种形式

Nike推荐的学数据分析与算法的书《利用python进行数据分析》

模块

相当于应用软件

  1. 系统自带应用软件
  2. 需要下载的应用软件
  3. 自定义的软件

模块的四种形式

  1. 内置模块:python解释器自带的模块,

  2. pip、pycharm安装的模块

  3. 自定义模块——》自定义代码

    什么是模块?

    模块——》实现功能——》代码——》

  4. 包(模块)

import和from...import

导入模块

  1. 开辟内存空间,内存空间命名为time
  2. 把time。py代码读入内存名称空间然后运行
  3. 通过time.方法名使用模块中的方法

from 模块名 import方法名

  1. 开辟内存空间,内存空间命名为time
  2. 把time。py代码读入内存名称空间然后运行
  3. 把sleep()读入当前文件名.py文件中(就是当前文件),因此可以直接使用方法名

如果想使用多个方法:

  1. from 模块 import 方法1,方法2
  2. from 模块 import * 这种方式会将模块所有的方法全部导入,容易与主程序变量名发生冲突,最好不要使用。

import的优缺点

优点:永远不会和变量名冲突

缺点:每次导入多输几个字

from 模块名 import 方法名的优缺点

优点:少输几个字

缺点:易发生冲突

自定制模块

自己写的一个.py文件就是一个自定义的模块,文件名就是模块名。模块名不要和python自带模块冲突。

用途:分文件存储代码——》函数与函数之间分开——》让代码块更加清晰——》不同的模块干不同的事情

循环导入问题

模拟问题的发生:

  1. 在pycharm里创建两个文件,m1.py、m2.py

  2. m1里写下如下文件

print('from m1.py')
from m2 import x
y = 'm1'
  1. m2里写下如下文件
print('from m2.py')
from m1 import y

如果运行m1文件就会报错‘cannot import name 'x'’

解决方案

方案一

将对自定义的模块调用都放入函数中,这样就只有使用模块时才会调用模块,从而避免两个程序以相互调用的逻辑出现。

#m1.py
print('from m1.py')
def func1():
from m2 import x
print(x) y = 'm1'
#m2.py
print('from m2.py')
def func1():
from m1 import y
print(y)
x = 'm2'

方案二

将对模块的导入放要调用的变量下面(以后都用方案一)

# m1.py
print('from m1.py')
y = 'm1'
from m2 import x
# m2.py
print('from m2.py')
x = 'm2'
from m1 import y

模块的搜索路径

模块的搜索顺序可以通过在主程序内读入一个模块,让主程序调用模块运行一段时间,在这段时间内将此模块删除来判断程序对模块路径的搜索顺序。(为了防止不必要的错误发生,以后程序的文件名尽量用英文命名)

  1. 内存

  2. 内置

  3. 自定义

    内存——》内置——》自定义

Python文件的两种用途

python文件共有两种用途,一是执行文件,二是本当做模块导入。

编写好的一个python文件可以有两种用途:

  1. 脚本,用来被执行
  2. 模块,用来被导入

if _name_ == '__main__':的使用

if __name__ == '__main__':用于当调用模块时,不想让模块中的某个函数或者代码执行,也可以用于只让某个函数或者代码块执行。__name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'__main__';当该文件作为模块文件导入时,__name__等于文件名,if只是一个普通的判断语句。

模块的四种形式、 import和from...import、 循环导入问题、模块的搜索路径、 python文件的两种用途的更多相关文章

  1. 模块导入及使用,关键字,模块搜索路径,python文件的两种用途

    06.05自我总结 一.模块导入及使用 1.模块导入的两种方式 我们拿time模块并使用其中的time功能进行举例 a)第一种 import time print(time.time) import首 ...

  2. python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)

    一.模块的循环导入问题 run.py # import m1 # 第一次导入 m1.py # 错误示范 ''' print('正在导入m1') from m2 import y #第一次导入m2 x= ...

  3. Python 1-3区分Python文件的两种用途和模块的搜索路径

    区分Python文件的两种用途 run.py文件: import m1 m1.py文件: def f1(): print('f1') def f2(): print('f2') #当文件被执行时__n ...

  4. Python文件的两种用途

    目录 一.Python文件的两种用途 一.Python文件的两种用途 python文件总共有两种用途,一种是执行文件:另一种是被当做模块导入. 编写好的一个python文件可以有两种用途: 脚本,一个 ...

  5. 第九章、python文件的两种用途

    目录 第九章.python文件的两种用途 一.用途 第九章.python文件的两种用途 一.用途 当前运行的文件(脚本) 被导入的文件(模块) # aaa.py x = 1 def f1(): pri ...

  6. 从模块到python文件的两种用法

    01模块的四种形式 模块 就是从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名是test.py的话,它的对应模块名就是test) 包 用 ...

  7. 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用

    2018年3月19日 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5 ...

  8. 加载xib文件的两种方式

    一.加载xib文件的两种方式 1.方法一(NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@&quo ...

  9. elf格式转换为hex格式文件的两种方法

    这周工作终于不太忙了,可以写点笔记总结一下了. 之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次 ...

随机推荐

  1. 关于自定义 List集合排序的方法!

    大致流程: 排序是用到排序的接口Comparator<T>你要先建一个类实现比较器Comparator //大致流程public class StuComp implements Comp ...

  2. nginx访问控制用户认证两种方式

    一.用户认证1.首先需要用http来生成密码文件即安装apache :yum install -y httpd 生成密码文件:htpasswd -c /usr/local/nginx/conf/htp ...

  3. 系统分析与设计HW1

    软件工程的定义 1993年,电气电子工程师学会(IEEE)给出了一个定义:"将系统化的.规范的.可度量的方法用于软件的开发.运行和维护的过程,即将工程化应用于软件开发中". 阅读经 ...

  4. Python学习之==>函数

    一.函数是什么: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用函数名就行. 二.函数的作用: 1.简化代码 2.提高代码的复用性 3.代码可扩展 三.定义函数: ...

  5. 大sd卡 裂开了,写保护掉了。重新装好后,被写保护的解决办:

    大sd卡 裂开了,写保护掉了.重新装好后,被写保护的解决办: 1.用烙铁把写保护附近的塑料往外顶一点点,就ok   别太热,也别劲太大.容易过,不能破坏原来的部分. 解决问题. 总结: 写保护,就是检 ...

  6. 【ABAP系列】SAP 系统的消息类型分析 MESSAGE TYPE

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 系统的消息类型分析 ME ...

  7. IDEA激活—免费永久激活(lookdiv.com)

    网址: http://lookdiv.com/ 钥匙就是网址 钥匙:lookdiv.com 亲测有效!非常好用.

  8. Spoj 2798 Qtree3

    一棵结点为黑色或白色的树,初始都是白色的.有两种操作 1 将一个结点换颜色 2 询问从根到结点u路径上面的第一个黑色点,没有则输出-1 InputIn the first line there are ...

  9. java8--- Optional的使用

    // https://www.jianshu.com/p/82ed16613072 1.Optional.of(T value),传入非 null(否则会抛出 NullPointerException ...

  10. MySQL的事务和视图

    事务 1.概念 一条或者多条sql语句的集合! 事务:就是一堆操作的集合,他们同生共死.要么都执行成功,要么都执行失败2.事务的特性  ACID  A:原子性  完整的,不可分割的 原子性 (Atom ...