Python基础---模块和包

模块
概念:     模块和java中的包概念类似
导入:     关键字  import    import 模块名...
部分导入:   关键字 from    from 模块名 import 函数名1,函数名2....
调用:     模块名.函数名
自定义模块:
    每个Python文件都可以作为一个模块,模块名就是文件名
    例如:
        文件test.py,在test.py中定义了函数add
            导入:import test或者 from test import add 
            调用:result = test.add(11,22)

      测试模块:在自定义模块中添加了一些测试代码
           目前问题:调用模块,测试代码也执行    
           理想效果:模块测试代码不执行
           解决方法:加入  __name__ 变量
                      if __name__=='main':
                               测试代码

def add(a,b):
	return a+b
#测试信息
if __name__=='main':
	ret = add(12,22)
	print('int test.py file,,,,12+22=%d'% ret)
import test
c=test.add(6,7)
print(c)

包:把很多模块组织起来
作用:有效避免模块名称冲突问题,使组织结构更加清晰
包和模块区别:__init__.py只要存在,就表明此目录应被作为一个package处理
理解:资源管理器,目录树等一样
包的导入:利用 from...import
        from 顶层包.次顶层包...子包 import 函数名
        from 顶层包.次顶层包 import 子包
注意:
        1.目录结构中可以发现很多的 __init__.py 文件===初始化模块
        2.有的__init__.py中是空白,有的却会有__all__参数。
              __init__.py是空白,可以直接import到moudle的所有函数
              __init__.py中定义了__all__,则import只会导入__all__部分定义的内容

     __all__介绍:
             __all__该变量包含执行这样的语句时应该导入的模块的名字
             __all__ :一个字符串列表,列表元素就是模块名
                  例如:  __all__ = ['module_13', 'module_12']

模块发布:暂时不整理

猜你喜欢

转载自blog.csdn.net/JinChao94/article/details/84788062