• python的项目组织结构包括:包(顶级)、 模块、  类( 函数 变量是类的特性)
  • 包是“文件夹”,模块是“文件“,是管理组织单元。模块存在包下
  • 一个包下可以存在多个模块。每个模块又可以有多个类、函数、变量、业务逻辑
  • 右图所示便是一个类: 
  • 右图中包“seven”下的c5.py和包“six”下的c5.py,二者包名不同但模块名相同。在此情况下若实现调用需要在相同模块前加上包的名字(加上包的名字就形成了路径,也就是命名空间)

python如何使用项目其他文件夹内的类 python项目文件组成_python

  • 名为“__init__.py”的模块的作用是区别普通文件夹和包。在运行含该模块的包时,该模块自动运行;在调用时,__init__.py的名字就是包名 __init__.py 经常做一些初始化工作
    __init__.py 通过__all__来决定导入的模块

__init__.py 可以批量导入

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_02

python如何使用项目其他文件夹内的类 python项目文件组成_项目组织文件_03

 

 

  • 导入python的语法 :

       (1)import 。import后面只能加模块 ,不能在import下添加模块的变量名。不可以加变量名!!!!

           若想引用该模块下的变量,要通过模块.变量的格式进行引用,

           简化路径的方法:import t.c7 as m  ;把路径简化成m。

    该引用方法的好处是一眼可以看出a变量是属于哪个包的那个模块 ,坏处是写的比较繁琐                                                                                          

python如何使用项目其他文件夹内的类 python项目文件组成_包名_04

       (2) from module import 变量/def(函数)。

                 from() import()方法导入的是变量(可以直接使用变量), import导入的是模块

 

            “*”一块把c7里的变量都导入到c8模块中

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_05

   也可以使用图中方法限制“*”的全部引用,若加上__all__(内置变量),则只可以使用“*”引用指定变量

python如何使用项目其他文件夹内的类 python项目文件组成_项目组织文件_06

 

 

C7、c8不在同级目录 命名空间问题

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_07

 

 

 

  • From c9 import a,b,c 。导入a b c如果想导入的太多, “()”“\”实现代码的换行
  • 包和模块是不会被重复导入的   要避免循环导入

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_08

python如何使用项目其他文件夹内的类 python项目文件组成_项目组织文件_09

修改:

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_10

间接的循环引入

python如何使用项目其他文件夹内的类 python项目文件组成_python_11

python如何使用项目其他文件夹内的类 python项目文件组成_包名_12

python如何使用项目其他文件夹内的类 python项目文件组成_项目组织文件_13

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_14

修改

 

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_15

python如何使用项目其他文件夹内的类 python项目文件组成_命名空间_16

导入模块后就会执行模块内的所有代码

 

  • __pycache__ 是编译的解释器,自动生成,可以提升python的运行效率

python如何使用项目其他文件夹内的类 python项目文件组成_包名_17

  • 入口文件的概念:一个应用程序通常只有一个入口文件