Python-组织结构-目录结构、包导入、__init__文件、模块内置变量、* 导入限制
__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__文件、模块内置变量、* 导入限制的更多相关文章
- nginx应用场景,特性,目录结构,常用模块,内置变量,URL和URI,http状态码,配置文件详解
1.nginx介绍 1丶俄罗斯人开发的,开源www服务软件 2丶软件一共780K 3丶nginx本身是一款静态(html,js,css,jpg等)www软件 4丶静态小文件高并发,同时占用的资源很少, ...
- Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)
1. 前言 什么是 Beautiful Soup 4 ? Beautiful Soup 4(简称 BS4,后面的 4 表示最新版本)是一个 Python 第三方库,具有解析 HTML 页面的功能,爬虫 ...
- Python - 常用内置变量
直接上代码 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 这是注释__doc__会打印这部分内容 "&qu ...
- 初学Python——软件目录结构规范
为什么要设计好目录结构? 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定义好组织 ...
- python 项目目录结构
目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Stackoverflow的这个问题上,能看到大家对Python目录结构的讨论. 这里面说的已经很好了, ...
- Python软件目录结构
目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Stackoverflow的这个问题上,能看到大家对Python目录结构的讨论. 这里面说的已经很好了, ...
- Python之目录结构
Python之目录结构 项目名project_name project_name -|--bin (可执行文件) --|--start.py import os,sys #设置环境变量 BASE_DI ...
- Python第八天 模块 包 全局变量和内置变量__name__ Python path
Python第八天 模块 包 全局变量和内置变量__name__ Python path 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Pyt ...
- [转]python file文件操作--内置对象open
python file文件操作--内置对象open 说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...
随机推荐
- CODING DevOps 代码质量实战系列第二课: PHP 版
讲师介绍 杨周 CODING DevOps 架构师 CODING 布道师 连续创业者.DIY/Linux 玩家.知乎小 V,曾在创新工场.百度担任后端开发.十余年一线研发和带队经验,经历了 ToB.T ...
- Bellman-Ford算法 例题:P3371 单源最短路径
看到还没人用Bellman-Ford过,赶紧水一发 lz非常弱,求各位大佬轻喷qwq 洛谷题目传送门:P3371 0."松弛"操作 如果存在一条边\((u,v)\)通过中继的方式可 ...
- express综合用法
一.创建: 1.先导入express第三方文件(我设置的全局) npm i express -g 2.加载express const express = require("express&q ...
- 如何分析和监测竞争对手网站的seo数据
http://www.wocaoseo.com/thread-36-1-1.html 如何分析和监测况争对手的网站的seo操作方法和seo数据?主要从哪几个方面考虑?如何分析和监测竞争对手网站的seo ...
- Go测试开发(一) 怎么写Go代码
安装过程略过,网上搜一大把. 介绍 本文会在一个module中开发一个简单的Go package. 同时介绍go tool(也就是go命令行). 以及如何fetch,build和install Go的 ...
- HDU-6608-Fansblog(威尔逊定理+快速乘)(多校)
Problem Description Farmer John keeps a website called ‘FansBlog’ .Everyday , there are many people ...
- SpringBoot—整合log4j2入门和log4j2.xml配置详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...
- 用于测试 SqlAnalyzer1.01 的21个测试用例
感慨:当年看着 https://www.cnblogs.com/heyang78/p/11451814.html 一文望洋兴叹,如今我也自己做出来了! 21. 原文=select name, cnt ...
- 按照BNF语法重新写就的JsonAnalyzer2
本例源码:https://files.cnblogs.com/files/heyang78/JsonAnalyzer2-20200525-01.rar 自从按BNF重新书写了算术表达式解析(https ...
- 《Head First 设计模式》:组合模式
正文 一.定义 组合模式允许你将对象合成树形结构来表现"整体/部分"层次结构.组合能让客户以一致的方式处理组合对象以及个体对象. 组合对象:包含其他组件的组件. 个体对象(叶节点对 ...