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平台,面向开发者 ...
随机推荐
- Go语言 进程、线程、轻量级进程、协程和go中的Goroutine 那些事儿
原文:http://www.cnblogs.com/shenguanpu/archive/2013/05/05/3060616.html 电话面试被问到go的协程,曾经的军伟也问到过我协程.虽然用py ...
- 包嗅探和包回放 —tcpdump、tcpreplay--重放攻击
攻击方式:tcpdump 进行嗅探,获取报文消息:然后用tcpreplay回放攻击 arp欺骗可以使用 arpspoof kali linux有这三个工具 转载地址https://www.cnblog ...
- st表模板
http://blog.csdn.net/insistgogo/article/details/9929103 这篇博客讲解的很详细了,求区间最大值也可以用st表,时间复杂度O(n log(n)),查 ...
- IOS-SQLite3的封装
IWStudent.h // // IWStudent.h // 02-SQLite的封装 // // Created by apple on 14-5-22. // Copyright (c) 20 ...
- Hadoop WordCount程序
一.把所有Hadoop的依赖jar包导入buildpath,不用一个一个调,都导一遍就可以,因为是一个工程,所以覆盖是没有问题的 二.写wordcount程序 1.工程目录结构如下: 2.写mappe ...
- .NET学习路线之我见(转)
这是我的第一篇博客,所以,我想写个大的,至少这个话题是比较大的. 在文章的开头,首先声明,这篇文章仅代表我个人的想法,并且只适合.NET的初学者,如果你已经有两年以上的开发经验,我劝你还是别看了,省得 ...
- .Net版SQLite无法访问网络位置的数据库文件-winOpen,os_win.c 36702异常
最近一个C#小程序,希望将SQLite数据库放在网络共享的位置,让多个客户端同时访问.却发现SQLite连接不上该网络位置的数据库,而如果数据库在本地则一切正常. 例如将SQLite数据库 test. ...
- laravel发送邮件
这里已163为例: 1..env文件配置和mail.php配置(默认使用.env) MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=465 MAIL ...
- Skynet服务器框架(八) 任务和消息调度机制
引言: 在我看来,消息和任务调度应该是skynet的核心,整个skynet框架的核心其实就是一个消息管理系统.在skynet中可以把每个功能都当做一个服务,整个skynet工程在执行过程中会创建很多个 ...
- 使用 nvm 管理多版本 node
首先,使用下面的命令来安装 nvm $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | b ...