module
就是一个.py
文件,自己写的一个.py
文件也可以作为一个module
被别的程序使用。
module
中的任何一个对象(即函数function,类class,变量variable等)都可以被导入使用。
import的常见使用
直接使用import
- 格式: import module
import module1
# 定义三个变量来指向module1里面的对象
func = module1.function_in_module1
cls = module1.Class_in_module1()
vr = module1.variable_in_module1
# 打印出来看看效果
print('-' * 60) # 打印个分割线
func()
print('-' * 60)
print(cls)
print('-' * 60)
print(vr)
复制代码
运行后输出
------------------------------------------------------------
I'm a function in module 1
------------------------------------------------------------
I'm a class in module 1
------------------------------------------------------------
I'm a Variable_in_module 1
复制代码
from 模块 import 对象(函数,类,变量等等)
## 函数
from module1 import function_in_module1
function_in_module1()
复制代码
运行后输出
I'm a function in module 1
复制代码
## 类
from module1 import Class_in_module1
a = Class_in_module1()
print(a)
复制代码
运行后输出
I'm a class in module 1
复制代码
## 变量
from module1 import variable_in_module1
a = variable_in_module1
print(a)
复制代码
运行后输出
I'm a Variable_in_module 1
复制代码
from 包(package).模块(module) import 对象(object)
在python中可以通过构建包(package)来组织很多.py
文件模块
构建的方法就是在放有.py
文件的文件夹下,创建__init__.py
的文件,文件内容可以为空。
这样,这个文件夹在python眼里就变成了一个包。这个包的名字就是这个文件夹的名字。
在下面的测试中,我构建的包的结构是:
package
|
|-- __init__.py
|
|-- module2.py
|
|-- subpackage1
|
|---- __init__.py
|
|---- module1.py
|
|-- subpackage2
|
|---- __init__.py
|
|---- module_in_subpackage2.py
复制代码
# 比如
from package.module2 import func
func()
复制代码
运行后输出
imported successfully
复制代码
# 来个超级长的
# from package.subpackage.module import object
from package.subpackage2.module_in_subpackge2 import a_variable
print(a_variable)
复制代码
运行后输出
I'm a variable in subpackage2's module
复制代码
from 包(package) import 模块(module)
from package.subpackage2 import module_in_subpackge2
a = module_in_subpackge2.a_variable
print(a)
复制代码
运行后输出
I'm a variable in subpackage2's module
复制代码
from package import subpackage
可以导入,但是导入的并不是__init__.py
里面的东西,而是包里包含的模块
from package import subpackage2
print(subpackage2.module_in_subpackge2.a_variable)
复制代码
运行后输出
I'm a variable in subpackage2's module
复制代码
用 as 给导进来的东西起个好写的别名
from package.subpackage2 import module_in_subpackge2 as haha
a = haha.a_variable # 注意看这
print(a)
复制代码
运行后输出
I'm a variable in subpackage2's module
复制代码
总结一哈
就是大包(package)可以组织一群小包(subpackages),小包可以组织小小包,包里不仅可以有包还可以有模块(module)。
其实包就是装有__init__.py
的文件夹,模块就是一个.py
文件,我们最终的目的就是用import导入进来使用它内部的对象(函数,类,变量等等)
小笔记,今天好好理了一下这个思路。建议不太会的同学可以去https://github.com/Edwardlin-zlt/Notebook/tree/master/%E5%AF%B9import%E7%9A%84%E7%9B%B8%E5%85%B3%E7%90%86%E8%A7%A3
下载我构造的包,跟着我的代码在jupyter上敲一敲,应该就能懂了吧。
我就是个自学python的新手,求大神带路。如果有理解错误的地方请指出~