python开发调用基础:模块的调用&制作包&软件开发规范
一,包的调用
#!/usr/bin/env python
#_*_coding:utf-8_*_ #调用 glance[1..4]\api\policy.py 路径
# policy.py 内容
# def one():
# print('this first!') # 1.glance1里面什么都没有写,只有plicy这个模块写了个方法,导入了具体的模块
# from glance1.api import policy 导入绝体模块
# policy.one() #模块的方法 # 绝对路径的调用方式,注意init文件,目录下都需要写
# import glance2
# glance2.api.policy.one() 目录下的模块方法都能找到
# glance2\__init__.py from glance2 import api
# glance2\api\__init__.py from glance2.api import policy # 相对路径的调用方式,注意init文件,与绝对路径相比就是.的用法
# import glance3
# glance3.api.policy.one() #目录下的模块方法都能找到
# glance3\__init__.py from . import api
# glance3\api\__init__.py from . import policy # 相对路径的调用不需要你去点点,直接就可以调用模块的方法,注意init文件,
# 用的是impor * 和 all的匹配使用
# import glance4
# glance4.policy.one()
# glance4\__init__.py from .api import *
# glance4\api\__init__.py __all__ = ['policy']
二,模块的调用
#!/usr/bin/env python
#_*_coding:utf-8_*_ #一个py文件就可以作为一个模块
#模块的导入:直接导入文件的名字,不需要带着后缀
#模块中的函数调用:模块名.函数名() #模块导入的时候做了三件事:
#首先 开辟了一个新的命名空间 my_moudle
#执行my_moudle内的代码
#将my_moudle里面的名字都和my_moudle绑定在一起 #模块在一个程序中只会被导入一次,不会被重复导入
#为了节约资源
#如何实现的?
#导入一个模块之后,会将模块存储在内存中
#当再次导入的时候,就到内存中去查看是否导入过这个模块,如果导入了就不继续导入 #导入的模块有自己的命名空间
#当你给一个模块起了别名的时候,就产生了一个命名空间,这个命名空间只和别名相关 # from ... import ... 这种形式是导入什么模块就用什么模块的方法
# import 模块 这个被import的模块把自己的全局导入进来 #参数问题,导入的模块,再被调用时候可以传参 #from 模块 import *
#首先会把模块当中所有不是‘_’开头的内容导入进来
#还可以通过__all__来控制可以导入的内容
#但是 以上两条只和 * 有关 # if __name__ == 'main':函数名 调用和本身相对独立,调用者需要导入模块后调用函数名()执行,不会执行整个模块内容
# import * 和 __all__ = ['模块名'] all限制了调用者可以使用哪些变量和方法
三,常规调用
# import 单文件
# from dir import file 目录下文件
# 如果有想通的名称
# from dir import file as rename.file # pip3 requests install
# 源码下载后会出现STEUP.PY文件,然后PYTHON STEUP.PY INSTALL
# 注意依赖关系
倒入模块的时候的优先级
先内置模块
安装的扩展模块
自己写的模块
开发规范目解释
全英文,py文件,(函数,类的命名注意规范)

soft 软件名字
bin 程序开始的地方
start.py 不要超过五十行,调用的地方
conf 配置文件,代码结构,输出要求。用户名,密码现阶段可以放
config.ini 一种格式
settings.py
core 核心代码,被调用的地方
core.py
db 数据,卖的商品,人物的信息,文件数据修改的地方
alex_json
egon_json
lib 用到的模块
read_ini.py
log 日志,操作记录
all.log
README的内容
这个我觉得是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。
它需要说明以下几个事项:
1. 软件定位,软件的基本功能。
2. 运行代码的方法: 安装环境、启动命令等。
3. 简要的使用说明。
4. 代码目录结构说明,更详细点可以说明软件的基本原理。
5. 常见问题说明。
我觉得有以上几点是比较好的一个README。在软件开发初期,由于开发过程中以上内容可能不明确或者发生变化,并不是一定要在一开始就将所有信息都补全。但是在项目完结的时候,是需要撰写这样的一个文档的。
python开发调用基础:模块的调用&制作包&软件开发规范的更多相关文章
- Python引用多个模块,调用模块中的函数时,要注意的地方
转自:http://blog.csdn.net/yjk13703623757/article/details/70237463 python模块是”从下到上”导入(import)的. 例如: a.py ...
- thinkphp5的控制器调用自身模块和调用其他模块的方法
以user为例,调用user.php的get_number()方法 一.不管是调用自身模块还是其他模块app\model\User.php写法不变 <?php namespace app\ind ...
- import模块/包--软件开发规范
一. 模块 模块:就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译 ...
- day21 模块与包+软件开发目录规范
目录 一.导入模块的两种方式 二.模块搜索的路径的优先级 三.循环导入 四.区分py文件的两种用途 五.编写一个规范的模板 五.包 1 什么是包 2 为什么要有包 3 包的相关使用 3.1 在当前文件 ...
- WPF软件开发系统之二——水环境检测Surface触摸屏软件开发
该系统采用C#.WPF语言开发,开发工具Visual Studio 2015.Blend,环境WIN7系统及以上,适用于PC.Windows触摸屏Surface等设备. 部分截图效果如下: 开发工具环 ...
- python自动化开发-[第六天]-常用模块、面向对象
今日概要: 1.常用模块 - os模块 - random模块 - shutil模块 - hashlib模块 - pickle/json模块 - shelve模块 - configparser模块 - ...
- [No0000138]软件开发基础知识
1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ...
- Python自建logging模块
本章将介绍Python内建模块:日志模块,更多内容请从参考:Python学习指南 简单使用 最开始,我们用最短的代码体验一下logging的基本功能. import logging logger = ...
- 如何在华为云软件开发云上运行Python
一. 华为云软件开发云与Python 1. 华为云软件开发云简介 华为云软件开发云(DevCloud)是集华为近30年研发实践,前沿研发理念,先进研发工具为一体的一站式云端DevOps平台,面向开发者 ...
随机推荐
- Linux软件安装-----apache安装
一. ./configure --prefix=/usr/local/http2 \ --enable-modules=all \ --enble-mods-shared=all \ 开启模块共享: ...
- MySQL5.7版本开启二进制日志是log_bin、bin-log 还是 bin_log ?
已Mac系统为例,文件:/usr/local/mysql/support-files/my-default.cnf 是mysql的默认配置文件,你可以直接修改这个文件但是不推荐,你可以在/etc/my ...
- spirng: srping mvc配置(访问路径配置)搭建SpringMVC——最小化配置
搭建SpringMVC——最小化配置 最开始接触网页的时候,是纯的html/css页面,那个时候还是用Dreamweaver来绘制页面. 随着网站开发的深入,开始学习servlet开发,记得最痛苦的就 ...
- debug.js中的length的错误
记得昨天报了一个错,debug.js文件中的length未定义.前台不定位代码,后天也不报错,而debug.js是框架封装的文件,不是自己写的,无从得知是哪里的问题,而项目也已经重新启动过,无法撤销. ...
- 解决:pipenv shell报错:AttributeError: 'module' object has no attribute 'run'
利用pipenv shell切换到虚拟环境时,显示报错:AttributeError: 'module' object has no attribute 'run' 可以看到是d:\program\p ...
- Autolayout .Compact or .Regular [iPhone/iPad]
- Dubbo定义及其作用
Dubbo定义 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只 ...
- IE浏览器兼容 css之bug 问题
bug的几种常见原因: 1.盒模型bug 原因:没有正确声明doctype(如果没有声明doctype,各浏览器对代码的解析有不同的规范).解决方法:使用严格的doctype声明. 2.各浏 ...
- 条款2:尽量以const enum inline 来替换 #define
这里说的意思其实相当于,宁可以用编译器来替换预处理器 因为使用预处理器可能使得被处理过的东西无法进入符号表,例如 #define MAXLEN 16 这里的MAXLEN并没有进入符号表,这样有编译错误 ...
- Wordpress在主题中自定义登陆页面并且禁用自带的登陆页面
在使用Wordpress制作主题之后,不想要他自带的登陆页面以及地址. 1.新建一个用户页面来接管与登陆相关的动作 //在主题根目录下新建page-login.php,通过action获取用户动作,然 ...