本文目录:

一、包的详解
二、相对导入和绝对导入
三、内置模块补充

一、包的详解

1、包是什么

    包其实也是一个模块,只不过是一个大的模块下包含一堆模块的载体
    本质上也是一个文件夹,与普通文件的区别在于其中包含一个init的文件

2、包的作用

    包的作用就是提高代码的可读性和扩展性

3、怎么使用包

    创建一个package文件夹,在该文件下创建多个文件
    使用包和调用模块一样,import 包名

4、init文件的作用

    模块调用会发生一下三种情况:
      1.会创建一个名称空间
      2.会执行模块中的代码
      3.在执行文件中产生的名称指向模块名称的空间

    但包是一个文件夹是包不是文件,所以init在导入包时,就执行了包上模块功能

    好处:可以在init文件下调用多个模块中的功能,就无需在挨个查找

    总结:init其实是讲所有模块名导入到该文件下,继而将所有模块名称下的功能导入其中

    注意:由于init文件作为模块导入,所以sys.path中不包含该目录,所以导入时要制定该名

5、包的嵌套

    定义:包的嵌套的就是包中有包的意思,包中的包被称为子包
    要是用子包中的内容和模块方法一样,在子包中的init中导入需要的内容,但要注意不管                  是子包都是做为模块导入的

    调用sys.path中肯定不包含子包路径,导入时需要从文件目录往下找

6、导入需要注意的事项

    1.使用import导入模块时可以加点来访问下层
    2.注意点的左边必须是包名
    3.在import后面不可以有点,必须有一个明确的名字

 

二、相对导入和绝对导入

  1、相对导入的定义

    从sys.pash开始的完整路径开始导入

  2、绝对导入的定义

    相对于被导入模块的路径
    语法为 "."表示当前路径,”.."表示上一层路径,“..."上上层的路径 以此类推

  3、注意事项:
    1.建议不超过三层
    2.相对导入只能用于包的内部模块之间的调用

  4、常见的错误演示

    绝对导入时没有从当前文件开始
    执行文件中用了绝对导入
    跳出了顶层包的范围

三、内置模块的补充

print(complex(1))
#complex 转换为复数形式 print(dir())
#查看内置属性和方法,不传参数就是当前对象 print(divmod(10,3))
#执行除法运算,返回商和余数 print(enumerate(["a",2,3,4]))
#将值和索引组成元组 print(globals())
#查看全局空间中有哪些名称 def func():
x=100
print(locals)
func()
#locals 查看局部空间有哪些名称 print(hash([1,2,3]))
#不可变类型可hash 可变类型不可hash print(help())
#查看帮助信息 li=[1,2,3,4]
res=li.__iter__()
res.__nest__()
iter(li)
next(res)
#可迭代对象和可迭代器对象 print(len(li))
#代表长度 print(id(100))
print(memoryview("".encode("utf-8")))
#id和memoryview 找内存地址 print(pow(2,3,3))#2**3%3
#2的三次方除3 print(type(str([1,2,3])))
#返回对象字符串的表示 print(list(reversed([1,2,3])))
#reversed反转顺序 print(round(1.2))
#四舍五入 res=slice(1,3)
li=[1,2,3,4,5,6,7,8,9]
print(li[1:3])
print(res)
#slice切分的意思 print(list(zip([1,2,3],[3,2,1])))
#zip拉链函数将多个可迭代对象中的数据一一对应 print(vars())
#不传参数和locals一样,如果传参那就调用这个对象的__dict__

    

python常用模块:包的使用、init作用、相对导入绝对导入与内置函数的更多相关文章

  1. Python——day14 三目运算、推导式、递归、匿名、内置函数

    一.三目(元)运算符 定义:就是 if...else...语法糖前提:简化if...else...结构,且两个分支有且只有一条语句注:三元运算符的结果不一定要与条件直接性关系​ cmd = input ...

  2. Day5 模块及Python常用模块

    模块概述 定义:模块,用一砣代码实现了某类功能的代码集合. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,提供了代码的重用性.在Python中,一个.py文件就称之为一个模块(Mod ...

  3. Day6 模块及Python常用模块

    模块概述 定义:模块,用一砣代码实现了某类功能的代码集合. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,提供了代码的重用性.在Python中,一个.py文件就称之为一个模块(Mod ...

  4. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  5. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  6. python基础——内置函数

    python基础--内置函数  一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...

  7. Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

    Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...

  8. python之Python内置函数一览表

    Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块. 如果你熟悉 Shell 编程,了解什么是 Shell 内置命令,那么你也很容易理解什么是 Python 内置函数 ...

  9. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  10. (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...

随机推荐

  1. Spring-Kafka —— 消费后不提交offset情况的分析总结

    最近在使用kafka,过程中遇到了一些疑问,在查阅了一些资料和相关blog之后,关于手动提交offset的问题,做一下总结和记录. 消费端手动提交offset代码如下: /** * 这是手动提交的消费 ...

  2. Python multiprocess模块(下)

    主要内容:(参考资料) 一. 管道 二. 数据共享 数据共享是不安全的 三. 进程池 进程池的map传参 进程池的同步方法 进程池的异步方法 详解apply和apply_async apply_asy ...

  3. flask钩子函数

    @app.context_processor def context_processor(): return {"current_user":"zhiliao" ...

  4. 学习笔记:CentOS 7学习之十一:文件的重定向

    1.文件描述符定义 文件描述符:是内核为了高效管理已被而打开的文件所创建的缩影,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符:文件描述符是一个简单的非负整数,用于标明每一个被进程 ...

  5. 基于SpringBoot从零构建博客网站 - 整合ehcache和开发注册登录功能

    对于程序中一些字典信息.配置信息应该在程序启动时加载到缓存中,用时先到缓存中取,如果没有命中,再到数据库中获取同时放到缓存中,这样做可以减轻数据库层的压力.目前暂时先整合ehcache缓存,同时预留了 ...

  6. 【转帖】k8s之Deployment与service

    k8s之Deployment与service 2018年08月05日 18:11:00 xiyou_pen/pen 阅读数 5894   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...

  7. 有关java5以后的线程

    创建线程的方式 方式一 继承于Thread类 /** * 多线程的创建,方式一:继承于Thread类 * 1. 创建一个继承于Thread类的子类 * 2. 重写Thread类的run() --> ...

  8. 结对编程-如何用精简的java代码写出这个系统

    [写在前面]这篇博客是软件工程这门课中要求结对编程.规则是这样的:结对的两个人,分别看对方个人项目代码,2天时间内,分析对方代码优点和缺点.我是来分析凌嘉文同学的代码. 先写一下个人项目中的项目需求, ...

  9. matplotlib库的基本使用与折线图

    matplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建 基本使用: x和y的长度必须一致 figure()方法用来设置图片大小 x,y ...

  10. Cow and Snacks(吃点心--图论转换) Codeforces Round #584 - Dasha Code Championship - Elimination Round (rated, open for everyone, Div. 1 + Div. 2)

    题意:https://codeforc.es/contest/1209/problem/D 有n个点心,有k个人,每个人都有喜欢的两个点心,现在给他们排个队,一个一个吃,每个人只要有自己喜欢的点心就会 ...