python基础之 026 包以及包的引入
内容梗概:
1. from xxx import xxx知识点补充
2. 包 1. 知识点补充.
我们现在知道可以使⽤用import和from xxx import xxx来导入一个模块中的内容.那有⼀种特殊的写法: from xxx import *
我们说此时是把模块中的所有内容都导入. 注意, 如果模块中没有写出__all__ 则默认所有内容都导入.
如果写了__all__ 此时导入的内容就是在__all__列表中列出来的所有名字.
实例1
#haha.py
__all__ = ["money", "chi"]
money = 100
def chi():
print("我是吃")
def he():
print("我是呵呵")
# test.py
from haha import *
chi()
print(money)
he() # 报错 2. 包
包是一种通过 '.模块名'来组织python模块名称空间的方式.我们创建的每个⽂文件夹都可以被称之为包.
但是我们要注意, 在python2中规定. 包内必须存在__init__.py⽂文件. 创建包的⽬目的不是为了运行, 而是被导入使用.
包只是一种形式⽽而已. 包的本质就是⼀种模块
为何要使用包? 包的本质就是一个文件夹, 那么文件夹唯一的功能就是将文件组织起来,随着功能越写越多,
我们无法将所有功能都放在一个文件中, 于是我们使用模块去组织功能,随着模块越来越多, 我们就需要用文件夹将模块文件组织起来,
以此来提高程序的结构性和可维护性 注意点:
1.包⾥的__init__.py是什么鬼?其实.不论我们使⽤用哪种方式导入⼀个包,只要是第一次导入包或者是包的任何其他部分
,都会先执行__init__.py文件.这个文件可以是空的.但也可以存放一些初始化的代码. (随意在glance中的__init__.py都可以进行测试) 2.绝对导入和相对导入,
我们的最顶级包glance是写给别人用的.然后再glance包内部也会有彼此之间互相导入的需求,这时候就有绝对导入和相对导入两种方式了.
1. 绝对导入: 以glance作为起始
2. 相对导入: ⽤用. 或者..作为起始
3.关于包相关的导入语句句也分为import和from xxx import xxx两种, 但无论使用哪种,无论在什么位置,
在导入时都必须遵循⼀一个原则: 凡是在导入时d带点的. 左边都必须是一个包.否则报错.可以带一连串串的点.比如a.b.c tips:关于相对导入和绝对导入的一些具体注意事项:
1.你启动程序的位置决定了你的包的范围的大小
2.要在包外部调用,相对导入的话在自身py文件中调用会报错不让调用.
而绝对导入的话,因为你在包内部调用,他的范围就变小了,一些其他的永远无法调用
3.相对导入在使用时只需观察想调用的包和本身包所在的位置关系即可. .表示在自己本层 , ..表示在上一层
详细可参考:
https://blog.csdn.net/qq_36829091/article/details/79841932
python基础之 026 包以及包的引入的更多相关文章
- 2015/9/15 Python基础(12):模块和包
模块是用来组织 Python 代码的方法,而包则是用来组织模块的. 当代码量很大时,我们一般会把代码分成几个有组织的代码段,然后每个代码段之间有一定的联系.代码单之间是共享的,所以Python允许调入 ...
- Python基础入门(模块和包)
1 模块 1.1 什么是模块 在 Python 中,一个 .py 文件就称之为一个模块(Module). 我们学习过函数,知道函数是实现一项或多项功能的一段程序 .其实模块就是函数功能的扩展.为什么这 ...
- 【python基础语法】模块和包管理,文件的操作(第8天课堂笔记)
''' 模块和包管理 模块和包的定义: 模块:模块是一个Python文件,以.py结尾,包含了Python对象定义和Python语句 包:Python中的包就是一个包含__init__.py文件的目录 ...
- python基础知识-day8(模块与包、random、os)
1.模块与包 package:相同的模块代码存储在一个目录下(即包里边会包含多个模块). 包不能存储在文件夹的目录下,模块名称不能使用关键字.(不包含工程文件夹) 2.模块与包的实例 1)在工程文 ...
- Python基础学习笔记(十一)函数、模块与包
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liao ...
- jmeter压测数据库,抓包工具,python基础
jmeter压力测试 前提场景的设置:单场景(单个接口进行压力测试一个请求)或混合场景(有业务流程的场景进行压力测试多个请求),压测时间一般在5--1515分组具体看需求. 数据准备:数据量少和数据量 ...
- 二十五. Python基础(25)--模块和包
二十五. Python基础(25)--模块和包 ● 知识框架 ● 模块的属性__name__ # my_module.py def fun1(): print("Hello& ...
- Python基础(协程函数、内置函数、递归、模块和包)-day05
写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04 ...
- Python基础-包与模块
Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...
随机推荐
- bzoj1497 [NOI2006]最大获利 最大权闭合子图
链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1497 思路 最大权闭合子图的裸题 一开始知道是这个最大权闭合子图(虽然我不知道名字),但是我 ...
- 二进制枚举例题|poj1222,poj3279,poj1753
poj1222,poj3279,poj1753 听说还有 POJ1681-画家问题 POJ1166-拨钟问题 POJ1054-讨厌的青蛙
- C# winfrom 通过代码 删除TableLayoutPanel控件的一行或列
tableLayoutPanel1.ColumnStyles.RemoveAt(1); tableLayoutPanel1.Controls.RemoveAt(1);
- (转)Awesome Object Detection
Awesome Object Detection 2018-08-10 09:30:40 This blog is copied from: https://github.com/amusi/awes ...
- 常用linux,DOS命令——持续更新
cd 文件夹名 进入某个文件夹 cd ../ 退出该级目录进入上一级 cd ../../ 退出该级目录进入上上级 cd ../../demo 退出该级目录进入上上级的目录 d: 回车 进入d盘 ls ...
- Kubernetes工作流之Pods二
Init Containers This feature has exited beta in 1.6. Init Containers can be specified in the PodSpec ...
- Kubernetes体系结构
Nodes Node Status Addresses Phase Condition Capacity Info Management Node Controller Self-Registra ...
- Python 编码规范 PEP8
1 Introduction Guido 的核心思想是:对于代码而言,相比于写,它更多是被用来读的.这个指导旨在使Python代码更易读,且具有更强的协调性. 2 A Foolish Consiste ...
- 51nod 1052 最大M子段和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1052 题意: 思路:设$dp[i][j]$表示前j个数构成i个字段时的最 ...
- fee photo
别样网 pexels Gratisography picjumbo lifeofpix foodiesfeed