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软件安装(二)
1. 安装软件时,如果依赖的文件是 .so 类型的文件(so文件是谋个文件的小功能模块,如果php.ini中设置的模块引用就是 .so文件) ,这时被依赖的软件要安装完整的软件,一般可以根据 .so ...
- C# imgage图片转base64字符/base64字符串转图片另存成
//图片转为base64编码的字符串 protected string ImgToBase64String(string Imagefilename) { try { Bitmap bmp = new ...
- C# 构造函数调用顺序
了解C#的一个类的加载过程,对于语言机制的理解和写出高效的语言很有帮助,这里简单介绍一下类的实例的构造函数调用过程.C#类的实例的构造过程是,先为实例的数据字段分配内存,并对所有字段按字节置零(0或者 ...
- 012-对象——魔术常量__CLASS__ __METHOD__ __FUNCTION__ __DIR__ __FILE__
<?php /** *魔术常量__CLASS__ __METHOD__ __FUNCTION__ __DIR__ __FILE__ */ //魔术常量:__CLASS__ 得到类名. /*cla ...
- [eShopOnContainers 学习系列] - 00 - 开发环境需求
开发环境需求 https://github.com/dotnet-architecture/eShopOnContainers/wiki/00.-Dev-machine-requirements 我的 ...
- 基于openfire+smack即时通讯instant message开发
前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使 ...
- $fn、$extends $fn.extends的用法,jquery的插件开发
原文链接:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html Query.fn.extend(); jQuery.extend( ...
- WinForm与Javascript交互
在应用程序的集成过程中,有时候需要WinForm应用程序和Javascript程序进行交互.比如说:应用程序是一个综合调度系统,在整个综合调度系统中,要实现定位,显示地图.综合调度平台的大部分功能都是 ...
- javascript 的智能提示intellisence用法
转载自:http://blog.csdn.net/applewangpai/article/details/23517087 引用指令reference Visual Studio 2012支持的 ...
- linux 备份svn
下面具体描述备份的方法: =============== 1.svnadmin dump备份工具 ------------------------ 这是subversion官方推荐的备份方式. ...