python--包、模块调用

Python中一个文件夹可以称作为一个包,文件夹下的文件可以称为模块

模块之间可以相互调用

在一个文件下创建两个py文件,里面的变量等,是可以相互调用的

m1.py

b = [1,2,3,4]
m2.py
import m1
print(m1.b)

 也可以

import m1 as m  (嵌套的层级太多时,避免输入过长字符)

print(m.b)

 

python import 的另一种方法:

from m2 import b
print(b)

 import 导入的是具体的模块,from导入的是具体的模块加变量

当导入的变量很多是可以用 *  代替

模块内置的系统变量

m1.py

__all__ = ['a','c']

a = 2

c = 3

d = 4

m2.py

from m1 import *

print(a)

print(c)

print(d)

这是只会打印出a和c,但是如果先打印d,则不会打印出c,因为代码执行到print(d)会报错。

 

代码换行

代码末尾添加\

也可以使用()

from m1 import a,b\

c

print(a)

 

 

from m1 import (a,b

 

c)

print(a)

 

导入一个包下的模块或变量到另一个文件中,该包下的 __init__.py 也会跟随自动执行

__init__.py的作用:

批量导入变量

__init.py

 

import sys
import datetime
 
m3.py
import t
print(t.sys.path)
 
目录层级关系:
D:\files\python\t\__init__.py
D:\files\python\m3
 
 

 

__init__.py 添加 __all__ = ['m1']

在另一个文件导入* 时,只会打印出m1内的变量,不会打印其他模块的变量。

 

注意包和模块导入:

包和模块是不会被重复导入的

避免循环导入,循环导入:两个文件相互引用变量,也可能是多个文件相互引用,形成了一个闭环。

m5.py

 

from m5 import m5
m4 = 1
 
m4.py

 

 

from m4 import m4
m5 = 6

print(m4)

这样会报错的

 

导入一个模块时,模块里的全部代码也会被执行。

m4.py

 

m4 = 1
print(m4)
 
m5.py
import m4
m5 = 6
 
执行m5.py 时 同样会打印出m4
 
注意:在另一文件运行导入模块时,一定要先保存导入的模块内容。


 

 

 

 

 

 

posted @ 2019-12-09 20:20  carl007  阅读(279)  评论(0编辑  收藏  举报