python模块--如何相互调用自己写的模块

一、模块相互调用
同级目录调用时的两种方法
1 import module
2 print(module.add(3,8))
3 
4 from module import add
5 print(add(2,4))
同级目录的子目录调用
1 from 文件相互调用 import cal
2 print(cal.sub(3,8))
3 from 文件相互调用.cal import  sub    #这种情况下加一个点(.),然后写目录
4 print(sub(3,9))
同级目录的子目录的子目录的调用
1 from 文件相互调用.文件2 import cal2
2 print(cal2.mul(3,7))
3 
4 from 文件相互调用.文件2.cal2 import mul
5 print(mul(3,7))
依次再深一层
1 from 文件相互调用.文件2.文件3 import cal3
2 print(cal3.divi(8,2))
3 from 文件相互调用.文件2.文件3.cal3 import  divi
4 print(divi(8,2))

特殊情况

 1 ######### 有一种情况特殊的 #################
 2 from 文件相互调用.文件2 import 文件3    #这种不推荐用这种的
 3 print(文件3.cal3.divi(8,2))
 4 
 5 
 6 
 7 ##### 有一种特殊的调用格式:这种不推荐用。一执行效率低;二不却确定文件是否重复等
 8 from 文件相互调用 import *
 9 print(cal.sub(3,8))
10 
11 from 文件相互调用.文件2.文件3 import *
12 print(cal3.divi(8,2))

二、一些细节

 1 #############################################
 2 同时调用多个模块时,可简写如下
 3 import xx, xx,xx, ...   #即用逗号隔开
 4 
 5 ##############################################
 6 import调用模块时,做了两件事情:
 7 1、会执行一遍被调用的模块
 8 2、引入变量名(即模块名)
 9 ##############################################33
10 通常情况下不会把所有程序写在一个文件里面,而是依据功能写到不同的文件里面
11 如:
12 bin文件时程序的的入口
13 main 文件里只写逻辑程序
14 module 文件里面只写功能程序
15 
16 
17 包的功能:
18 1、用来组织模块的,可以根据模块的功能分包;
19 2、避免模块冲突;而同名模块放在不同包就不会发生冲突。
20 
21 ################################################33
22 if __name__ == "__main__":
23     print(add(3,5))
24     print('ok')
25 
26 print(__name__)
27 
28 if __name__ == "__main__":  作用有二:
29 1、 放入某一个文件种,用来测试该文件的结果,但是,该文件被调用时,该语句不会被执行。
30 简单说就是:用于被调用文件的测试
31 2、调用程序里面写上这么一句,可以防止别人修改我的主程序,仅供他人调用而已。
原文地址:https://www.cnblogs.com/jianguo221/p/8990484.html