自己写的python文件如何相互调用?Python中的模块库十分常用,对于常用的模块可以自己动手自定义,但是如何进行调用呢?

自己写的python文件如何相互调用-LMLPHP

模块相互调用

同级目录调用时的两种方法

 import module
 print(module.add(3,8))
 
 from module import add
 print(add(2,4))
登录后复制

同级目录的子目录调用

 from 文件相互调用 import cal
 print(cal.sub(3,8))
 from 文件相互调用.cal import  sub    #这种情况下加一个点(.),然后写目录
 print(sub(3,9))
登录后复制

同级目录的子目录的子目录的调用

 from 文件相互调用.文件2 import cal2
 print(cal2.mul(3,7))
 
 from 文件相互调用.文件2.cal2 import mul
 print(mul(3,7))
登录后复制

依次再深一层

from 文件相互调用.文件2.文件3 import cal3
print(cal3.divi(8,2))
from 文件相互调用.文件2.文件3.cal3 import  divi
print(divi(8,2))
登录后复制

特殊情况

from 文件相互调用.文件2 import 文件3    #这种不推荐用这种的
print(文件3.cal3.divi(8,2))
登录后复制

有一种特殊的调用格式,但是有两个缺点:

一执行效率低;二不却确定文件是否重复等

from 文件相互调用 import *
print(cal.sub(3,8))
登录后复制
from 文件相互调用.文件2.文件3 import *
print(cal3.divi(8,2))
登录后复制

同时调用多个模块时,可简写如下

import xx, xx,xx, ...   #即用逗号隔开
登录后复制

import调用模块时,做了两件事情:

1、会执行一遍被调用的模块

2、引入变量名(即模块名)

通常情况下不会把所有程序写在一个文件里面,而是依据功能写到不同的文件里面

如:

bin文件时程序的的入口
main 文件里只写逻辑程序
module 文件里面只写功能程序
登录后复制

包的功能:

1、用来组织模块的,可以根据模块的功能分包;

2、避免模块冲突;而同名模块放在不同包就不会发生冲突。

if __name__ == "__main__":
    print(add(3,5))
    print('ok')
print(__name__)
登录后复制

if __name__ == "__main__": 作用有二:

1、 放入某一个文件种,用来测试该文件的结果,但是,该文件被调用时,该语句不会被执行。

简单说就是:用于被调用文件的测试

2、调用程序里面写上这么一句,可以防止别人修改我的主程序,仅供他人调用而已。

以上就是自己写的python文件如何相互调用的详细内容,更多请关注Work网其它相关文章!

09-11 17:04