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

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

成都创新互联公司网络公司拥有十余年的成都网站开发建设经验,成百上千客户的共同信赖。提供成都网站设计、成都网站制作、网站开发、网站定制、卖链接、建网站、网站搭建、成都响应式网站建设、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务

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

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

2、按 import 进来的对象不同分为4种场景:

 
 
 
  1. 1. import   # 导入一个包
  2. 2. import    # 导入一个模块
  3. 3. from  import   # 从一个包中导入模块/子包/对象
  4. 4. from  import   # 从模块中导入对象

    3、解释器会按照sys.path列表的顺序来查找被引入的包或模块名字。

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

    优先加载当前工作目录下的模块,如果你的项目中使用了与内建模块中同名的包或模块名,就会遇到没有xx属性之类的报错提示,新手特喜欢干这种事。

    4、你可以操作 sys.path,使得其他路径文件加入到Path中,使之能被解释器发现。

     
     
     
    1. # test.py
    2. import sys, os
    3. # 当前目录没有hi模块,报错找不到模块
    4. import hi 
    5. Traceback (most recent call last):
    6. ImportError: No module named hi
    7. # hi模块所在位置: /data/hi.py
    8. # 将hi所在模块加入sys.path
    9. sys.path.append("/data")
    10. # 可以正常工作了
    11. import hi

    5、另外一种加载模块的方法:如果你的模块不在 sys.path,除了第5条方法在外,还可以使用 imp 模块中的方法 imp.load_source

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

    6、import module 时,模块中所有的代码将被执行(类对象,函数对象将被创建,不会被调用),import package 时, init .py 文件中的代码也将被执行。 7、模块的 __file__ 属性

    导入模块时,可以通过模块的 __file__ 属性查看模块所在磁盘的路径位置

     
     
     
    1. >>> import requests
    2. >>> requests.__file__
    3. 'D:\\Programs\\Anaconda3\\envs\\py_test\\lib\\site-packages\\requests\\__init__.py'

    8、永远不要使用 from import * ,有不可预知的风险

    9、没有了。

    分享文章:关于Python包和模块的10个知识清单
    本文路径:http://www.shufengxianlan.com/qtweb/news26/232376.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联