python学习之路(十二),,这节主要介绍一下im


这节主要介绍一下import!很实用的调用模块的功能。


导入模块 是导入真实的代码

而导入包 是导入包下面的 __init__() 文件这两个是不一样的

先说模块定义

模块 它就是一个 py 文件它就是负责从逻辑上 组织代码的代码里面 它可以有变量 有函数 有类 有逻辑模块 它不是这些东西的简单堆砌 而是要实现功能创建模块 就是 new 一个 python file定义一个模块:技术分享在另一个文件中 要使用这个模块 所以要这样来调用:技术分享模块名 点 变量名模块名 点 方法名
import module_alex
print(module_alex.name)
module_alex.say_hello()
像是现在这种写法 它仅仅导入一个模块那要如果要导入很多模块 怎么办? —— 逗号分隔为防止冲突 还有一种别名导入的方式:
import module_alex
from module_alex import logger as logger_from_alex


def logger():
print(‘i am logger in current file‘)

logger()
logger_from_alex()
下面就讲到 import 的本质字面就是导入一个模块的意思 模块说白了就是一个文件 一堆代码比方说 import module_alex它的本质 就是把 module_alex 这个文件解释了一遍或者说 把 module_alex 这个文件运行了一遍然后把它运行的结果 赋值给 module_alex 这个变量那 module_alex 这一堆代码当中 它定义了一些变量要如果想调用这个变量 就 module_alex.name 这样调用要如果想调用这个方法 就 module_alex.logger 这样调用
import module_alex

print(module_alex.name)
还可以 from module_alex import name 这种写法这样子 相当于仅仅解释了 name如果是这样导入 调用的时候就不用写 module_alex 了就直接写 name 就可以导入了
from module_alex import name

print(name)
补充一个点 就是写目录结构的时候 右键新建建的是 package 建完之后发现它自动带上一个文件技术分享那其实 package 就是包 而包的意思就是文件夹 或者目录它就是以这个 __init__.py 文件为特征的如果是模块 它就是文件 在里面写代码就 OK 了如果是包 它就是文件夹 在里面写模块就 OK 了包 就是从逻辑上组织模块的导入模块 就是 import 模块名或者 from 模块名 import 变量名方法名那导入包 也是 import 包名就 OK 了导入包 它实际上 是在解释包下面的 __init__() 文件无论是导入模块 还是导入包 都是在同级路径下才可以导入那如果不在同一个目录下 怎么导入呢?统计目录下没有 就不能导入因为它导入的时候 实际上是去找这个路径了按什么找呢 按 sys.path 去找
import sys
print(sys.path)
一个一个找一遍 都找不到 就抛异常技术分享那为了能找到 module_alex 就得先把它的父目录 加入 sys.path 里面
print(os.path.abspath(__file__))
结果:

/Users/lucia_gaga/PycharmProjects/practice_lucia/bb/path.py

获取上级:
print(os.path.dirname(os.path.abspath(__file__)))
结果:

/Users/lucia_gaga/PycharmProjects/practice_lucia/bb

就这样一层一层往上找

python学习之路(十二)

评论关闭