__pycache__ .pyc文件,中间代码,提升python运行效率

目录

  分档和归类

Python项目组织结构

  包

    模块

      类

        函数、变量

  # 层级依次往下都是一对多关系

Python项目目录结构

  ProjectName          项目根目录

    pkgName           项目包

    ...

    main.py           项目入口目录文件

命名空间

  1. 区分不同包下模块

  2. 区分不同模块下类

  3. 访问 pkgName.modulName modulName.ClassName, 通过 . 进行访问

区分包和普通文件夹

  1. 文件夹下是否有 __init__.py 文件

  2. 想导入__init__文件,则直接导入包名

__init__文件

  1. 导入包、模块、类、函数、变量都会首先执行__init__内容

  2. 做包和模块的初始化工作

  3. 把模块公共导入代码和系统库内容放入 __init__文件

  在__init__文件中, __name__是当前包名, __package__为当前包名

对 * 导入限制

  1. 放在模块的头顶部,限定导入的类 __all__ = ["className", ...]

  2. 放在 __init__文件中,限定导入的模块 __all__ = ["modulName", ...]

导入  import from .   分为导入本包和其他包

  1.  导入其他包

    import pkgName

  2. 导入当前包下目录

    from . import modulName

  3. 导入其他包模块

    from pkgName import modulName

  4. 从当前包导入类

    from .modulName import className

  5. 从其他包导入类

    from pkgName.modulName import className

  6. 导入包是不重复,导入一个包Python会执行一次包中代码

  7. 避免循环和环路导入

相对导入     包下文件可以通过相对路径导入, 依据包下模块中的__name__定位

绝对导入     从顶级包开始,一直通过 . 访问下去,必须知道顶级包位置

项目入口文件  main.py

  1. 整个项目的起始执行文件,整个程序逻辑运行起始,只能通过绝对导入模块

  2. 会强行把 main文件中的 __name__ 改为 "__main__", __package__ 置为 None, __main__模块是不存在的

把模块当作main文件运行     python -m pkgName.modulName

  -m 参数后面接收模块的命令空间

获取模块内置变量     dir()

  1. 当前模块命名空间    __name__

  2. 当前模块所在包名    __package__

  3. 获取模块注释      __doc__    注释写在模块头部,用于自动生成文档

  4. 获取当前模块绝对路径  __file__

  5. 系统自定义变量,和普通变量无区别,为了区分自定义变量和Python内置变量    __variable__

当前目录    .

上级目录    ..

Python-组织结构-目录结构、包导入、__init__文件、模块内置变量、* 导入限制的更多相关文章

  1. nginx应用场景,特性,目录结构,常用模块,内置变量,URL和URI,http状态码,配置文件详解

    1.nginx介绍 1丶俄罗斯人开发的,开源www服务软件 2丶软件一共780K 3丶nginx本身是一款静态(html,js,css,jpg等)www软件 4丶静态小文件高并发,同时占用的资源很少, ...

  2. Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)

    1. 前言 什么是 Beautiful Soup 4 ? Beautiful Soup 4(简称 BS4,后面的 4 表示最新版本)是一个 Python 第三方库,具有解析 HTML 页面的功能,爬虫 ...

  3. Python - 常用内置变量

    直接上代码 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 这是注释__doc__会打印这部分内容 "&qu ...

  4. 初学Python——软件目录结构规范

    为什么要设计好目录结构? 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定义好组织 ...

  5. python 项目目录结构

    目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Stackoverflow的这个问题上,能看到大家对Python目录结构的讨论. 这里面说的已经很好了, ...

  6. Python软件目录结构

    目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Stackoverflow的这个问题上,能看到大家对Python目录结构的讨论. 这里面说的已经很好了, ...

  7. Python之目录结构

    Python之目录结构 项目名project_name project_name -|--bin (可执行文件) --|--start.py import os,sys #设置环境变量 BASE_DI ...

  8. Python第八天 模块 包 全局变量和内置变量__name__ Python path

    Python第八天  模块   包   全局变量和内置变量__name__    Python path 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Pyt ...

  9. [转]python file文件操作--内置对象open

    python file文件操作--内置对象open   说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...

随机推荐

  1. LR与LR?

    目录 逻辑回归与线性回归 逻辑回归 1.建立目标函数 2. 梯度求解 3. 实现 线性回归 1. 建立目标函数 2. 求解 3. 实现 逻辑回归与交叉熵 逻辑回归与线性回归 逻辑回归 线性回归 目标函 ...

  2. Htmlcss学习笔记2——选择器与常用样式

    CSS引入类型 行内样式 内联样式 外部样式表 CSS选择器 基本选择器 复合选择器 伪类选择器 属性选择器 CSS字体样式 font-size font-family font-style font ...

  3. HMM隐马尔可夫模型来龙去脉(二)

    目录 前言 预备知识 一.估计问题 1.问题推导 2.前向算法/后向算法 二.序列问题 1.问题推导 2.维特比算法 三.参数估计问题 1.问题推导 2.期望最大化算法(前向后向算法) 总结 前言 H ...

  4. 多层v-for循环嵌套导致v-model双向绑定失败,页面不重新渲染

    数据格式是数组包对象,对象里面再包数组,数组再包对象,如下: 外层for遍历出editInfo里面所有的属性,内层for遍历Options. 最终实现样子 两个问题: 1.点加减按钮的时候往optio ...

  5. Pyinstaller打包: 将资源文件或文件夹打包到最后生成的exe中

    前提:用pyinstaller打包时部分资源文件可以利用qrc转成py文件来读取,但是有部分文件类型不适用. 原理:Pyinstaller 将资源文件一起打包到exe中.当exe运行时,会生成一个临时 ...

  6. C#转PHP

    官方主页 https://github.com/isukces/cs2php 快速开始 http://www.cs2php.com/how-to-begin.htm#.W2rBhC2B3mI 如何在V ...

  7. 和同事谈谈Flood Fill 算法

    前言 今天忙完了公司的工作后,发现同事在做LeeCode的算法题,顿时来了兴趣,于是王子与同事一起探讨如何能做好算法题,今天在此文章中和大家分享一下. 什么是Flood Fill 算法 我们今天谈论的 ...

  8. 深入了解Netty【二】零拷贝

    引言 以下翻译自:Zero Copy I: User-Mode Perspective 零拷贝是什么? 为了更好地理解问题的解决方案,我们首先需要理解问题本身.让我们来看看什么是参与网络服务器的简单过 ...

  9. 题解 洛谷P3799 【妖梦拼木棒】

    一道水题 (还是做了一个小时,我太菜了 基本思路: 题里面说,4根棍子拼成一个正三角形(等边三角形) 若设这四根棍子长度为\(a,b,c,d\)且\(a≥b>c≥d\) 那很容易得到 (真的很容 ...

  10. 跟着兄弟连系统学习Linux-【day08】

    day08-20200605 p27.软件包管理简 windows 和 linux 软件是不同的版本. Linux源码包,开源的.绝大部分都是C语言写的.源码包安装速度比较慢.需要先编译后再安装.脚本 ...