关于Python的模块

Python的模块

  • 在python中,任何一个python文件都可以看作一个模块
  • 不同包下有相同模块名并不会冲突,且包下必须有文件__init__.py
  • from lib import * 意思是从包lib中导入所有模块(若lib为模块名则为导入模块的所有函数)
  • from lib.module1 import test 意思是从lib这个包下的module1模块中导入函数test
  • import导入模块时会从sys.path输出的结果路径中查找模块然后导入
  • sys.path.append('D:/xx/xx/xx/code')可以添加搜索路径
  • 使用if __name__ == '__main__':

实例

  • 文件结构如下
    {{% fluid_img src="/img/post/python_module_file_tree.png" alt="模块目录结构.png" %}}

  • 测试文件test.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from package1 import * #导入包package1下的所有模块
import package2.module3 #导入包package2下的module3模块
import package2.module4 as s #导入包package2下的module4模块并重命名为s

a = module1.Class1() #创建一个对象
a.test() #调用类中的方法

b = module2.Class2()
b.test()

c = package2.module3.Class3()
c.test()

d = s.Class4()
d.test()
  • 包package1

    • init.py
    #这个文件可以为空
    
    __all__ = ['module1', 'module2'] #有这一句才能使用import *导入所有模块
    
    • module1.py
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    'this is test moudle'
    
    __author__ = 'reber'
    
    import sys
    
    class Class1(object):
        """docstring for Class1"""
        def __init__(self):
            super(Class1, self).__init__()
            
        def test(self):
            print "package1 -> module1.py -> Class1 -> test()"
    
        def main(self):
            print "this is module1.py main()"
    
    if __name__ == '__main__':
        sub11 = Class1()
        sub11.test()
        sub11.main()
    
    • module2.py
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    'this is test moudle'
    
    __author__ = 'reber'
    
    import sys
    
    class Class2(object):
        """docstring for Class1"""
        def __init__(self):
            super(Class2, self).__init__()
            
        def test(self):
            print "package1 -> module2.py -> Class2 -> test()"
    
        def main(self):
            print "this is module2.py main()"
    
    if __name__ == '__main__':
        sub11 = Class2()
        sub11.test()
        sub11.main()
    
  • 包package2

    • init.py
    
    __all__ = ['module3', 'module4']
    
    • module3.py
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    'this is test moudle'
    
    __author__ = 'reber'
    
    import sys
    
    class Class3(object):
        """docstring for Class1"""
        def __init__(self):
            super(Class3, self).__init__()
            
        def test(self):
            print "package2 -> module3.py -> Class3 -> test()"
    
        def main(self):
            print "this is module3.py main()"
    
    if __name__ == '__main__':
        sub11 = Class3()
        sub11.test()
        sub11.main()
    
    • module4.py
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    'this is test moudle'
    
    __author__ = 'reber'
    
    import sys
    
    class Class4(object):
        """docstring for Class4"""
        def __init__(self):
            super(Class4, self).__init__()
            
        def test(self):
            print "package2 -> module4.py -> Class4 -> test()"
    
        def main(self):
            print "this is module4.py main()"
    
    if __name__ == '__main__':
        sub11 = Class4()
        sub11.test()
        sub11.main()
    
  • 执行python test.py结果


    python_module_test_result.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 两本不错的书: 《Python参考手册》:对Python各个标准模块,特性介绍的比较详细。 《Python核心编程...
    静熙老师哈哈哈阅读 3,359评论 0 80
  • 1、开启公众号开发者模式 公众平台的技术文档目的为了简明扼要的交代接口的使用,语句难免苦涩难懂,甚至对于不同的读者...
    good7758阅读 1,513评论 0 1
  • 对于失恋的人而言,最痛苦最煎熬的是回忆,而遗忘又是一件多么奢侈的事情,往后,有一些电影不能再看,有一些话不能再提,...
    雯哥阅读 619评论 2 5
  • 文/忧喜 经常有朋友问,有没有一种直接的方式可以让本不喜欢葡萄酒的人喜欢上葡萄呢?答案肯定是有的。 多年前,笔者我...
    忧喜阅读 351评论 0 3