加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

关于Python包和模块的10个常识清单

发布时间:2018-09-30 02:34:50 所属栏目:移动互联 来源:佚名
导读:【新品产上线啦】51CTO播客,随时随地,碎片化进修 有同窗题目关于模块与包的题目,特给新人总结的关于Python包与模块的10个常识清单。 0、一个模块(module)就是一个py文件,模块的名字就是该文件的名字(不包括后缀) 1、一个 包(package)就是一个文件
【新品产上线啦】51CTO播客,随时随地,碎片化进修

 关于Python包和模块的10个常识清单

有同窗题目关于模块与包的题目,特给新人总结的关于Python包与模块的10个常识清单。

0、一个模块(module)就是一个py文件,模块的名字就是该文件的名字(不包括后缀)

1、一个 包(package)就是一个文件夹,(Python2划定该文件夹必需包括一个 __init__.py,Python3没有要求),包名就是文件夹名。

2、按 import 进来的工具差异分为4种场景:

  1. 1. import <package>  # 导入一个包 
  2. 2. import <module>   # 导入一个模块 
  3. 3. from <package> import <module or subpackage or object>  # 从一个包中导入模块/子包/工具 
  4. 4. from <module> import <object>  # 从模块中导入工具 

3、表明器会凭证sys.path列表的次序来查找被引入的包或模块名字。

  1. >>> import sys 
  2. >>> import pprint 
  3. >>> pprint.pprint(sys.path) 
  4. ['', 
  5.  'C:PythonPython35-32python35.zip', 
  6.  'C:PythonPython35-32DLLs', 
  7.  'C:PythonPython35-32lib', 
  8.  'C:PythonPython35-32', 
  9.  'C:PythonPython35-32libsite-packages'] 

优先加载当前事变目次下的模块,假如你的项目中行使了与内建模块中同名的包或模块名,就会碰着没有xx属性之类的报错提醒,新手特喜好干这种事。

4、你可以操纵 sys.path,使得其他路径文件插手到Path中,使之能被表明器发明。

  1. # test.py 
  2. import sys, os 
  3.  
  4. # 当前目次没有hi模块,报错找不到模块 
  5. import hi  
  6. Traceback (most recent call last): 
  7. ImportError: No module named hi 
  8.  
  9. # hi模块地址位置: /data/hi.py 
  10. # 将hi地址模块插手sys.path 
  11. sys.path.append("/data") 
  12.  
  13. # 可以正常事变了 
  14. import hi 

5、其它一种加载模块的要领:假如你的模块不在 sys.path,除了第5条要领在外,还可以行使 imp 模块中的要领 imp.load_source

  1. import imp 
  2.  
  3. imp.load_source("hi", "C://data/hi.py") 
  4. import hi 
  5.  
  6. # 可以本身指定模块的名字,相等与 import hi as h2 
  7. imp.load_source("h2", "C://data/hi.py") 
  8. import h2 

6、import module 时,模块中全部的代码将被执行(类工具,函数工具将被建设,不会被挪用),import package 时, init .py 文件中的代码也将被执行。 7、模块的 __file__ 属性

导入模块时,可以通过模块的 __file__ 属性查察模块地址磁盘的路径位置

  1. >>> import requests 
  2. >>> requests.__file__ 
  3. 'D:ProgramsAnaconda3envspy_testlibsite-packagesrequests__init__.py' 

8、永久不要行使 from import * ,有不行预知的风险

9、没有了。

【编辑保举】

  1. 近两万名开拓者维护的 Linux 内核代码行数已超 2500 万
  2. 第四范式宣布全新AI平台器材 让营业职员也可以开拓AI应用
  3. Google推出移动开拓器材Flutter预览版2 不变版1.0就要到来
  4. 2018 年关于前端开拓的五大成长趋势
  5. 红帽喊话开拓者:我们将支持 OpenJDK 8 到2023年
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读