图片怎么放入Python项目 python怎么把图片导入文件夹_名称空间


内容概览

  1. 相对导入和绝对导入
  2. random 模块

  1. 包,通俗的说就是一个文件夹,包里有 __init__.py 文件,包也是一种模块。函数多了,可以分模块文件去管理;模块多了,可以将模块分类,放在一个一个文件夹中,这些文件夹就是包
  2. 包的存在是为了使组织机构更加合理清晰
import


3. 前面提过,执行一个模块会发生三件事:

  • 在内存中创建一个以模块名命名的临时名称空间
  • 执行模块代码,将模块里面的代码加载到以模块名命名的临时名称空间
  • 调用模块内的名字必须通过『模块名.』的方式调用

4. 因为包是模块的集合体,因此 import 一个包名,也会发生三件事:

  • 内存中创建一个以包名命名的名称空间
  • 执行包中的 __init__.py 文件,将 __init__.py 里面的代码块加载到以包名命名的名称空间
  • 调用包内的名字必须通过『包名.』的方式调用

5. 假设与本 py 文件同目录下有一个包,名为 test,则在包 test 的 __init__.py 文件中创建一个变量 s,并给它赋值,比如 "s = 20"。那么,在本 py 文件中可以这样调用


import


6. 现在 test 包里面再创建一个 test01.py 文件,该怎么导入到本 py 文件中呢?解决办法是在 test 包里的 __init__ 文件里面导入 test01 模块


# test/__init__.py


7. 现在 test 包里再创建一个 aaa 的包,该包里的 __init__.py 里面有个变量 s,同样给它赋值,比如 "s = 100"。为了引用这个包,在 test 包里的 __init__.py 里面导入 aaa 这个包


# test/__init__.py


8. 在包 aaa 里创建一个 test02.py 文件,引用方法


# test/aaa/__init__.py


9. 为了避免有人搞混了,现在把所有相关的包和文件的路径和内容都列举出来,以便大家对照看是否有出错的地方


# 首先本 py 文件与 test 包是在同一个目录下


10. 总结:

  • from a.b import c:『 . 』的左边一定是个包,import 后面一定有个具体的名字
  • 包里面的 __init__ 文件想要引用模块必须是 from ... import ... ,只有在执行文件(即刚才一直提到的本 py 文件)直接写 import,而包是被引用的,因此不能直接 import
  • from a.b.c.d import e.f.g 的方式是错误的,from ... import ... 中的 import 后面必须只有一个,所以应该改为:from a.b.c.d.e.f import g

相对导入和绝对导入

  1. 假设与本 py 文件同目录下有个 test03.py 文件,里面的内容:
def


2. 绝对导入总结

  • 以执行文件的 sys.path 为起始点开始导入,称之为绝对导入
  • 优点:执行文件与被导入的模块中都可以使用
  • 缺点:所有导入都是以 sys.path 为起始点,导入麻烦

3. 相对导入总结

  • 参照当前所在文件的文件夹为起始开始查找,称之为相对导入符号
  • 『 . 』代表当前所在文件的文件夹
  • 『 .. 』代表上一级文件夹
  • 『 ... 』代表上一级的上一级文件夹
  • 优点:导入更加简单
  • 缺点:只能在导入包中的模块时才能使用

random 模块

  1. 随机模块的基本用法
import


2. 生成随机验证码示例


import