1.定义:

  1)模块:本质上就是一个python程序,封装成一个"模块",可以调用里面的方法,用来实现一个功能.逻辑上用来组织python代码.

  2)包:本质上是一个目录(必须带有一个"__init__.py"文件),逻辑上组织模块.

2.使用方法:

模块:

 #我们有两个程序"A"和"B".

 #A
def login():
print("Welcom login system") name = "Daniel"
#定义了两个变量 #B.我们在B里调用A import A
a.login()
>>>Welcom login system
print(a.name)
>>>Daniel #还有一种调用方法
from A import * #意思就是将模块A里的方法全部导入到当前
login()
>>>Welcom login system #就是将"A"里的代码解释到"B",这样可以直接调用 #但是呢这样有个问题,如果我在"B"里也定义了一个login呢? def login():
print("in the B.py")
login()
>>>in the B.py #覆盖前面的login #既然有问题那么就能解决,但是最好不要这样使用
from A import login as lg
lg()
>>>Welcom login system #'as'定义一个别名

包:

 #现在假如我们有一个包"A",里面有一个包"B",还有一个a.py,B下的"__init_.py"有一行"print("Hello Programmer")"
a.py
import B
>>>Hello Programmer #所以说,如果导入一个包,就是在执行包下的"__init__.py"

以上呢都是在同级目录下操作,我们说点不一样的.

同级目录下可以直接调用,不在一个目录下就无法调用.

其实python是有环境变量的:

 import sys
print(sys.path)
>>>['E:\\python\\ATM', 'E:\\python', 'D:\\Anaconda3\\python36.zip', 'D:\\Anaconda3\\DLLs', 'D:\\Anaconda3\\lib',......]
#这就是我的环境变量 #那么我将这个和调用模块有什么关系吗?并没有。。 #开个玩笑,为什么我们调用sys啊os什么都可以直接调用,也并没有在我们的同级目录下,就是因为这个环境变量,调用时先看你的同级目录,没有就去环境变量找,一个一个找. #举个例子,加入我们有包"A",包"A"下有包"B",包"A"有个模块叫"hehe",那么我们如何在B下调用A里的hehe? hehe:
a = print("in the hehe")
test:
import sys,os
x = os.path.dirname(os.path.dirname(__file__)) #这里呢就是将A加入了python环境变量,这样就能找到hehe这个模块了
print(x)
sys.path.append(x)
import hehe
hehe.a #那这里我想直接'a'调用,怎么办呢?
from hehe import a
a
#这样既可,这样就是解释hehe里的'a'方法到我现在的程序里,就等于在我现在的程序有一个a变量

3.import:

  #导入模块的本质就是在解释这个"**.py"的文件

  #导入包就是在执行下面的"__init__.py文件",所以其实并没有什么卵用

4.模块分类

  • 标准库(python自带,例如sys,os,time)
  • 开源模块(第三方开源模块)
  • 自定义模块(就是自己写的)

day6-基础 模块详解的更多相关文章

  1. Ceph Monitor基础架构与模块详解

    转自:https://www.ustack.com/blog/ceph-monitor/ Ceph rados cluster离不开Monitor,如果没有Monitor,则Ceph将无法执行一条简单 ...

  2. python 3.x 爬虫基础---Urllib详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...

  3. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

  4. Spring学习(一)-----Spring 模块详解

    官方下载链接:http://repo.spring.io/release/org/springframework/spring/ Spring 模块详解: Core 模块 spring-beans-3 ...

  5. Python的logging模块详解

          Python的logging模块详解 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志级别 日志级别指的是产生的日志的事件的严重程度. 设置一个级别后,严重程度 ...

  6. Python基础知识详解 从入门到精通(七)类与对象

    本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...

  7. ch01系统基础信息模块详解

    第1章 系统基础信息模块详解 1.1 系统性能信息模块 psutil 解决VMWare在Windows10的安装问题: 安装VC Redistributable 2017 解决虚拟机的上网问题:修改V ...

  8. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  9. I2C 基础原理详解

    今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...

  10. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

随机推荐

  1. HDU - 2842

    要拆第n个环要求保留第n-1拆除前n-2 对于n,先拆掉n-2再去掉n再放回n-2,然后规模降为n-1 f(n)=2f(n-2)+f(n-1)+1 inline ll mod(ll a){return ...

  2. [转] JavaScript中的Truthy和Falsy介绍

    [From] http://www.jb51.net/article/59285.htm 与大多数编程语言一样,JavaScript中存在boolean类型,以供逻辑判断使用.不过,和很多其它编程语言 ...

  3. Q541 反转字符串 II

    给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转.如果剩余少于 k 个字符,则将剩余的所有全部反转.如果有小于 2k 但大于或等于 k 个字符,则反转前 ...

  4. windos下安装mongodb

    一.下载 1. www.mongodb.com/download-center#community2.根据电脑系统下载对应的版本,3.选择zip(解压版本)/msi安装版本4.本文是用的msi(安装版 ...

  5. 【总结】MYSQL注入

    关于MYSQL注入的总结,网上的资料很多,这里和大家简单分享下自己实战中常用的思路和命令 0x00   UNION联合查询型注入常用语句 order by n //定字段,n为正整数 union se ...

  6. 使用jenkins自动化构建android和ios应用

    背景 随着业务需求的演进,工程的复杂度会逐渐增加,自动化的践行日益强烈.事实上,工程的自动化一直是我们努力的目标,能有效提高我们的生产效率,最大化减少人为出错的概率,实现一些复杂的业务需求应变.场景如 ...

  7. oracle 备份恢复篇(一)---rman

    一,rman介绍 RMAN(Recovery Manager)是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件.归档日志和控制文件,用来执行完全或不完全的数据库恢复.与传统 ...

  8. 在ZYNQ-7000平台上利用PS点亮PL上的LED灯

    在ZYNQ-7000平台上利用PS点亮PL上的LED灯 1.实验方案 图1    实验方案系统框图 2.具体步骤 2.1.vivado工程建立 ①打开vivado集成开发环境,点击“Create Pr ...

  9. JQuery脚本-通过禁用按钮防止表单重复提交

    <script type="text/javascript"> /* jquer 脚本,避免重复提交 隐藏点击的submit,后在他之后插入同名button伪装成被隐藏 ...

  10. Shader学习笔记

    Shader学习笔记 例子: Shader "SrfShader1"{ //定义显示在Inspector中的变量,并从Inspector中获取值 Properties{ _Colo ...