__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. css基本样式设置

    div中文字居中 如何让一个div中的文字水平和垂直居中?设置如下: 给定该div的长宽(或者二者只给出其一也可) .box{ height: 100px; width: 30%; text-alig ...

  2. CCAI观后

    暑期和大老板的学生一起学了一暑假的计算机视觉和机器学习,以前只是在京畿范围的学校听到的报告和这阵的学习数量级都不同.当时看到了很多人的报告,忽然发现了做报告应该做的准备实际还有很多. 首先是要有充分的 ...

  3. unity3d屏幕截图功能

    function OnGUI(){ if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),"screen& ...

  4. DLX AlgorithmX

    AlgorithmX精确覆盖: https://en.wikipedia.org/wiki/Knuth's_Algorithm_X DLX的基础算法 https://zh.wikipedia.org/ ...

  5. Prometheus 与 国产 TDengine 的对比

    通过对比,能加深对这两个系统的理解,方便后续架构选型时作出正确决定.他们的设计思路有很多值得借鉴的地方,虽然工作中需要用到这些知识的地方不多,但是了解他们的设计细节能极大满足我的好奇心. 1.场景和需 ...

  6. 小程序开发-block组件的使用

    微信小程序中,block不是一个组件,而是一个包装元素,不会在页面中做任何渲染. 使用情况:条件渲染 wx:if 因为 wx:if 是一个控制属性,需要将它添加到一个标签/组件上,用于控制隐藏与显示. ...

  7. SEDA架构实现

    一.SEDA SEDA全称是:stage event driver architecture,中文直译为“分阶段的事件驱动架构”,它旨在结合事件驱动和多线程模式两者的优点,从而做到易扩展,解耦合,高并 ...

  8. 用Python写一个向数据库填充数据的小工具

    一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...

  9. js中页面加载完成后执行的几种方法及执行顺序

    在js和jquery使用中,经常使用到页面加载完成后执行某一方法.通过整理,大概是五种方式(其中有的只是书写方式不一样). 1:使用jQuery的$(function){}; 2:使用jquery的$ ...

  10. J2EE之JavaScript(1)

    声明:此博客仅供记录自己的学习记录和随笔,看看就行了,就图一乐!   本篇学习随笔来自JavaScript 菜鸟教程:https://www.runoob.com/js/js-howto.html J ...