首先需要将import内容建立一个大概如下层级的包:

以黑色框为第一级,蓝色框为第二级,棕色框为第三级,红色框为第四级

一.import 引入初识

首先在module.py写入代码如下:

xboy = "hsz"xgirl= "zero"

defdog():print("小狗喜欢啃骨头")defcat():print("这个小猫的名字叫做小花")classMyStu():

name= "Python"

print("hello python")print(__name__)if __name__ == "__main__":#如果是间接的被导入,下面的代码不执行

print("test")

然后在main.py写入代码并逐个运行:

1.import 引入

importmodule#请记住:当导入模块的时候,只需要一次即可,终身受益.不会出现重复导入的情况#模块.属性(变量)

res =module.xboyprint(res)#模块.函数(方法)

module.dog()#模块.类

print(module.MyStu().name)#使用别名调用模块当中的成员

importmodule as mprint(m.xboy)

m.cat()importsysprint(sys.path)"""#自定义模块,进行导包

'''

在导包的时候,系统默认先从sys.path 这个路径开始寻找,如果找不到,直接报错,

如果想要找到,把相应的路径插入到sys.path这个列表,系统自动寻找对应模块.

'''

import sys"""sys.path.append(r"F:/hsz/zero/ceshi_module/") #importabcdprint(abcd.ceshi001)

然后对上面的mian.py里的内容进行注释,往后添加如下代码进行一步步运行:

2.from...import 从哪里..引入...方法

#引入一个

from module importdog

dog()#引入多个

from module importcat,xgirl

cat()print(xgirl)#引入所有 * 代表所有

from module import *

print(xboy)#可以在引入的同事,起一个别名

from module importcat as c,xboy as wwprint(ww)

c()print(__name__,type(__name__)) #__main__

"""#返回模块名字的魔术属性 __name__

如果当前文件是直接执行的,就是主文件(主进程),返回__main__

如果当前文件是间接执行的,就是子文件(子进程),返回当前文件名(模块名)"""

if __name__ == "__main__" : #if "main" == "__main__" 条件不成立 , 下面的代码不执行,不导入

#__name__ == __main__ 用来做测试用的, 在被间接导入的时候,下面的代码不需要导入

print("test code")

3.学习导入包

先对a.py 写入代码:

ceshia = 10011ceshia2=10012ceshia3= 10013

对mypath.py写入代码:

defjoin():print("自定义join")

ceshimypath= "mypath2345678"

还有package1下的__init__.py

ceshi101 = 10111111

#__init__ 不是用来直接运行的,而是伴随包的初始化的.

#方法三调用时,打开进行测试.#from package1 import a#from package1 import mypath

然后对main2.py写入代码,一个方法一个方法进行运行

#文件就是一个模块,文件就是一个包#文件夹里面可以有很多文件,就相当于包中有很多的模块#如果想把包当成模块用,在创建一个__init__.py中进行定义#当引入一个包的时候,当前包下的__init__文件自动执行

importpackage1print(package1.ceshi101)#方法一

importpackage1.aprint(package1.a.ceshia)#方法二 (起别名)

importpackage1.a as paprint(pa.ceshia2)#方法三#print("======方法三=========")#print(package1.a.ceshia)#package1.mypath.join() # 类比os.path.join的用法

注意:方法三只有在用的时候才将注释去掉运行测试,为了不影响接下来的运行,运行完方法3后对其进行注释

4.from ..import语法

然后对main2.py接下来的运行做好准备,需要在个个包下的文件添加内容如:

/package2/pkgone/pkgone2.py 内容为:

ceshippone2 = "ceshione2"ceshippone22= "ceshione22"

/package2/pkg_module1.py内容为:

ceshim1 = "m1"

/package2/pkgtwo/pkgtwo1.py内容为:

ceshi222 =222ceshi2222= 222222

接下来是main2.py添加如下代码:

#引入package1包下 a模块中的ceshia2 属性

from package1.a importceshia2print(ceshia2)#引入的同事,起别名

from package1.mypath importceshimypath as cm,join as jprint(cm)

j()

## 引入 package2 包下的 pkgone 包下的 pkgone1 模块 ,顺便起别名ppp1

import package2.pkgone.pkgone1 as ppp1

print(ppp1.ceshippp)

对此代码块进行一 一测试

5.单入口模块(重要)

分模块不能单独进行调用,统一由主文件main进行调用

模块之间的互相嵌套导入使用相对路径实现

单入口文件必须和包在同一层级,包里面可以含有各种包和模块

#单入口模式主要是对子文件的内容进行测试,在/package2/pkgone/pkgone1.py文件下添加如下代码:

ceshippp = "测试pppone"ceshippp1= "测试pppone1"

#子文件,如果是单入口模块,不能直接执行,因为在这里都用的的相对路径

#1.

from . importpkgone2print(pkgone2.ceshippone22)

#2.from.pkgone2 importceshippone2print(ceshippone2)

#3.from .. importpkg_module1print(pkg_module1.ceshim1)

#4.from .. pkgtwo importpkgtwo1print(pkgtwo1.ceshi222)

#5.from ..pkgtwo.pkgtwo1 importceshi2222print(ceshi2222)""". 当前路径

.. 上一级路径

... 上一级的上一级

.... 上一级的上一级的上一级

..... (这里的点是无限的)

from .......................................... import 模块"""

最后是在main2.py进行测试,将pkgone1.py文件一行行注释后,然后分5次将注释打开进行测试,并查看结果,理解单入口模式的使用方法

python快速倒包_Python 基础之import导包相关推荐

  1. python import 包_Python 基础之import导包

    首先需要将import内容建立一个大概如下层级的包: 以黑色框为第一级,蓝色框为第二级,棕色框为第三级,红色框为第四级 一.import 引入初识 首先在module.py写入代码如下: xboy = ...

  2. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  3. import导包方法和路径问题和init方法调用流程

    import导包方法 共有三种方法哦~但不建议用"."因为如果两个包中都有同一个接口名,那么这时候进行"."导包就会使程序误解,到底要调用哪个呢,所以最好不要用 ...

  4. Python基础import导包问题

    首先我自己的环境是mac+python3.6所以以下所有问题都是基本此环境 导下级目录 python在import包的时候是查找同级目录及sys.path(python环境下)的文件. 如果想要导入下 ...

  5. cpython python 区别面试_python基础教程之千万不要错过这几道Python面试题

    第1题: python下多线程的限制以及多进程中传递参数的方式? python多线程有个全局解释器锁(global interpreter lock),简称GIL,这个GIL并不是python的特性, ...

  6. Python from import导包ModuleNotFoundError No module named,找不到模块问题

    在学习Flask框架的蓝图时,遇到导包时用到了`from . 模块 import 对象`,然后试了试直接 import会报错,直接告诉我找不到模块,发现问题以此记录. 场景 有一个flask框架的项目 ...

  7. python的基本原理_python基础1(理论基础)

    1.python是什么语言 2.python的发展史 3.python2与python3的区别 4.python的语言类型 5.python的优缺点 6.IDLE是什么 7.变量是什么 一.pytho ...

  8. python综合题_python基础综合题----选自python二级考试

    <笑傲江湖>是金庸的重要武侠作品之一.这里给出一个<笑傲江湖>的网络版本, 文件名为"笑傲江湖-网络版.txt".‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪ ...

  9. python 如何将虚拟环境的项目的所有.py文件的import导包汇总到requirements.txt文件 (pipreqs)

    参考文章: pipreqs - Generate requirements.txt file for any project based on imports 作用: 能快速汇总所需安装的包然后批量安 ...

最新文章

  1. C# 正则表达式过滤危险HTML
  2. Java数组的定义方式有哪几种
  3. 周思进:产品和服务在“骂”与“被骂”中不断打磨
  4. spring el表达式 if else_Spring 获取单例流程(二)
  5. mvc 两个控制器session 丢失_用纯 JavaScript 撸一个 MVC 程序
  6. mongodb 的命令操作(转)
  7. ERP项目实施记录08
  8. 洛谷P1461 海明码 Hamming Codes
  9. 《JavaScript高级程序设计》笔记之'ECMAScript基础'
  10. Atitit 安全登录退出管理法v3 tbb.docx 目录 1.1. 未持有效出入边界票据。。校验票据有效性 1 1.2. 从事与票据种类不符的活动的 2 1.3. 数据为数字的应该校验数字 2
  11. 423.从英文中重建数字
  12. 48.网络安全渗透测试—[穷举篇11]—[webshell密码破解(asp/aspx/php)]
  13. Unity创建位图字体
  14. SAN(存储区域网络),WWN, WWPN,WWNN区别
  15. Qt自定义进度条示例
  16. 鸿蒙ios,鸿蒙2.0和ios区别_鸿蒙2.0和ios有什么差别
  17. Loopback接口的主要作用
  18. 联想电池召回网上登记 Troubleshooting
  19. 软件设计师之根据16进制内存地址计算内存大小(超详细)
  20. 微信中控网页授权的实现

热门文章

  1. 纸上谈兵_FPGA配置_多重加载
  2. Windows下Qt拔插U盘的检测方法
  3. 1272 摘果子(树形dp,dfs)
  4. 在Python中,输出格式:%d , m , %-6d, d , %.6f的一些区分
  5. mahout如何使用随机森林测试数据集
  6. 发现一个h5网站,爱果果
  7. 数位DP - 带49的数
  8. pypy加速python
  9. C++小游戏 吃豆人
  10. 网页制作课作业基于HTML+CSS+JavaScript+jquery仿慕课网教学培训网站设计实例 企业网站制作