一.什么是Python Package

如何区分你看到的目录是一个Python Package包呢?其实很简单,你只要看这个名录下是否有“__init__.py”这个文件就好了,如果有那么就是Python Package包,如果没有,就说嘛你看到的就是个普通的目录,如下图,你就可以看出来"calcuate"和"Log"就是一个Python Package包,而"yinzhengjie"就是一个目录,而判断的依据就是是否包含_init__.py文件。"yinzhengjie"这个目录下包含三个文件,即“calcuate”,“Log”和“bin.py"文件。

二.主程序调用包中的模块

目录结构如上图所示,以下是其中各个文件中的代码。

sc_cal

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7 importlogging as log

8

9 defGetLogger():

10 logger =log.getLogger()

11

12 fh = log.FileHandler("log.txt")

13

14 logger.addHandler(fh)

15

16 return logger

以下是bin主程序的代码。

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7 from Log importlogger

8

9 from calcuate importsc_cal

10

11 obj =logger.GetLogger()

12

13 obj.error("This yinzhengjie's test error !")

14

15 s1 = sc_cal.Add(100,200)

16

17 print(s1)

18

19

20

21 #以上代码执行结果如下:

22 300

执行主程序代码之后,会在执行的目录中生成一个名称为“log.txt”的文件。

1 This yinzhengjie's test error !

三.包中模块的调用

目录结构如上图所示,以下是其中各个文件中的代码。

sc_cal

dome

logger

以下是bin主程序的代码。

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7 from Log importlogger

8

9 from calcuate importsc_cal

10

11 obj =logger.GetLogger()

12

13 obj.error("This yinzhengjie's test error !")

14

15 s1 = sc_cal.Add(100,200)

16

17 print(s1)

18

19

20

21

22 #以上代码执行结果如下:

23 30

24 300

log.txt

四.同级目录下的被调用模块之间的相互调用

目录结构如上图所示,以下是其中各个文件中的代码。

1>.Log 包中的源代码

dome

logger

2>.calcuate 包中的源代码

sc_cal

3>.bin 包中的源代码

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7 importos,sys

8

9

10 AbsolutePath = os.path.abspath(__file__) #将相对路径转换成绝对路径

11

12 SuperiorCatalogue = os.path.dirname(AbsolutePath) #相对路径的上级路径

13

14 BaseDir = os.path.dirname(SuperiorCatalogue) #在“SuperiorCatalogue”的基础上在脱掉一层路径,得到我们想要的路径。

15

16 sys.path.insert(0,BaseDir) #将我们取出来的路径加入到Python的命名空间去,并将该目录插入在第一个位置中。

17

18 from Log importlogger

19

20 from calcuate importsc_cal

21

22

23 obj =logger.GetLogger()

24

25 obj.error("This yinzhengjie's test error !")

26

27 s1 = sc_cal.Add(100,200)

28

29 print(s1)

30

31

32

33 #以上代码执行结果如下:

34 30

35 300

执行主程序代码之后,会在执行的目录中生成一个名称为“log.txt”的文件。

log.txt

五.包的多级调用

目录结构如上图所示,以下是其中各个文件中的代码。

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7 importlogging as log

8

9

10 defGetLogger():

11 logger =log.getLogger()

12

13 fh = log.FileHandler("log.txt")

14

15 logger.addHandler(fh)

16

17 return logger

主程序代码如下:

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7

8 from Log.Loger importlogger as log

9

10 obj =log.GetLogger()

11

12 obj.error("This yinzhengjie's test error !")

执行主程序代码之后,会在执行的目录中生成一个名称为“log.txt”的文件。

log.txt

六.__name__的应用

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7 print("This is Test Page !")

8

9 deffoo():

10 print("ok")

11

12

13

14 if __name__=="__main__": #推荐使用这种方式调试代码,只有执行当前模块的人才会执行以下代码,如果是别人调用该模块,以下的代码是不会被执行的!

15 foo()

16

17 print(__name__)

18

19

20

21

22

23

24 #以上代码执行结果如下:

25 This isTest Page !

26 ok

27 __main__

1 #!/usr/bin/env python

2 #_*_coding:utf-8_*_

3 #@author :yinzhengjie

4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/

5 #EMAIL:y1053419035@qq.com

6

7

8 importname

9

10

11

12 #以上代码执行结果如下:

13 This isTest Page !

14 name

python什么是调用_Python中包(package)的调用方式相关推荐

  1. python类定义以及调用_python中如何定义和调用类详解

    类的方法的定义 1.def fun_name(self,...); Pass 2.其中的参数self代表类的实例,在调用方法时由系统自动提供 3.方法定义时必须指明self参数 类的方法的调用 与普通 ...

  2. python数据库模糊查询_python中数据库like模糊查询方式

    python中数据库like模糊查询方式 在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * F ...

  3. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  4. 【Python——类】 同一个类中一个函数里调用另一个函数的方法

    [Python-类] 同一个类中一个函数里调用另一个函数的方法 class Solution:def a(self):self.b() # 注意这种写法:self.类名def b(self):prin ...

  5. python从包中导入模块_Python中包,模块导入的方法

    Python中包,模块导入的方法 http://www.cnblogs.com/allenblogs/archive/2011/05/24/2055149.html 1. import modname ...

  6. python导包的问题_python中包引入遇到的问题

    最近在用python的flask时候发现一点问题,代码组织如下 |-app |-__init__.py |-views.py |-operations.py |-xxx.py |-run.py 按照p ...

  7. python连接sap接口_python中调用api接口

    CDN之API以及SDK的调用 简介 阿里云CDN提供了丰富的API接口,除了控制台,CDN还开发了多样化的接口.目前我们推荐用户使用新版API,详情请参见新版API参考.同时CDN提供了多语言SDK ...

  8. python实例方法不可以用类调用_python中可以直接用类调用方法吗

    python中可以直接用类调用方法吗 关注:244  答案:4  mip版 解决时间 2021-01-16 12:20 提问者 妳莂騙莪 2021-01-15 21:49 python中可以直接用类调 ...

  9. python import from区别_python中import与from方法总结(推荐)

    一.模块&包简介 模块:所谓模块就是一个.py文件,用来存放变量,方法的文件,便于在其他python文件中导入(通过import或from). 包(package): 包是更大的组织单位,用来 ...

最新文章

  1. python笔记6 模块与包 程序开发规范 包 re sys time os模块
  2. Session对象的清空
  3. Elasticsearch(二) ik分词器的安装 以及 自定义分词
  4. HBase配置(伪分布式模式)
  5. 前端实现街道地图_来自法国的注重保护个人隐私的开源地图
  6. js 自定义 $ 选择器
  7. vscode设置字体
  8. 如何检测360核晶模式和CPU虚拟化
  9. 调试一个开源的车牌识别算法遇到的总结
  10. python控制摄像头云台_python-onvif实现客户端控制相机云台
  11. (Android7.0) init.rc与AIL(Android Init Language)语句
  12. 再见丑陋的 SwaggerUI,这款开源的API文档生成神器界面更炫酷,逼格更高
  13. 网络爬虫---从千图网爬取图片到本地
  14. 黑苹果2k显示器开启hidpi_黑苹果开启硬件加速
  15. 雪城大学Syracuse University介绍
  16. tomcat启动项目时一直卡住无反应的解决方案
  17. 三个蛤蜊三块肉才能称得上“老板”
  18. 小程序使用vant中的步骤条 vant-steps
  19. 【Windows必备软件】01 Groupy 实现你所有的窗口标签化管理
  20. 即时通讯软件:改变企业沟通方式

热门文章

  1. COS中访问文件的三种方式
  2. win10系统更新补丁时进度条一直卡在0%不动的解决方案
  3. 【报告分享】2020快手电商生态报告.pdf(附下载链接)
  4. 各种排序算法稳定性比较
  5. 日出时间php,返回给定的日期与地点的日落时间/ 日出时间
  6. php 中c函数重载,php函数重载的替代方法--伪重载详解
  7. HashMap分别按照key和value进行排序的快捷方法
  8. 并行算法第二讲:并行算法基础知识
  9. Leetcode每日一题:125.valid-palindrome(验证回文串)
  10. Linux编程(5)_静态库与动态库