1.19 Python基础知识 - 软件目录开发规范及不同模块之间的调用
一个软件项目的开发,除了需要很厉害的开发能力,同时在软件开发项目时,也需要对项目结构有良好的组织能力,将功能进行拆分,不同的功能放在不同的目录或文件中,方便日后的维护,升级等操作。比如核心代码的目录,配置的目录,公共库的目录,日志的目录等!
示例:

这是个小项目的开发框架,从目录结构上来看,bin目录放的是启动的文件,conf目录放的是配置文件的信息,core的目录放的是核心功能的,docs存放的是一些文档,lib用于存放公共库文件,logs存放日志文件,README对软件进行介绍。
良好的软件目录结构,除了对日后的维护有好处,这样更能提升软件开发人员的代码风格。
尤其是README文件,需要详细描述软件的功能,运行环境,已经要注意的问题等!
详细的README文件内容,可以很好对程序读者更好的了解程序!
既然功能以及拆分到各个目录中去了,那他们之间如何进行调用,请看示例:
我们在core目录中core_code.py中写入如下代码:
def sayhi(name):
print('Hi %s !' % name)
现在我们要在bin目录中的start.py中调用这个sayhi函数,那应该怎么调用,我们使用os和sys模块中的方法进行调用,请看示例:
import os
import sys # 首先我们通过os的方法获取到当前start.py文件的绝对路径,再获取到文件所在的目录
current_path = os.path.dirname(os.path.abspath(__file__)) # 将获取到目录添加到系统环境变量中
sys.path.append(current_path)
# 这样我们这个文件的bin目录和core目录就在同一级了,我就可以导入了相应的模块了,如果模块名整体很长,可以通过as进行设置别名
import core.core_code as core name = input('What is your name ? ')
core.sayhi(name)
1.19 Python基础知识 - 软件目录开发规范及不同模块之间的调用的更多相关文章
- Python基础之软件目录结构规范
设计一个层次清晰的目录结构,就是为了达到这两点: 可读性高:不熟悉项目的人,一眼就能看懂目录结构. 可维护性高:随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好. 目录组织方式 ...
- Python3基础(4)匿名函数、装饰器、生成器、迭代器、内置函数、json&pickle序列化、软件目录开发规范、不同目录间模块调用
---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...
- python学习day4软件目录结构规范
为什么要设计好目录结构? 参考:http://www.cnblogs.com/alex3714/articles/5765046.html "设计项目目录结构",就和"代 ...
- 百万年薪python之路 -- 软件的开发规范
一. 软件的开发规范 什么是开发规范?为什么要有开发规范呢? 你现在包括之前写的一些程序,所谓的'项目',都是在一个py文件下完成的,代码量撑死也就几百行,你认为没问题,挺好.但是真正的后端开发的项目 ...
- 【python】-- 内置函数、软件目录开发规范(代码编码风格)
内置函数 一.内置函数表格 二.内置函数演示 1.abs(x) 功能:取数的绝对值 >>> abs(-1) #取-1的绝对值 1 ########################## ...
- Python学习第二阶段day1 内置函数,序列化,软件目录开发规范
内置函数 1.abs() 求绝对值 2.all() 所有元素为真才返回真 all( [1,1,2,3,-1] ) 值为True 3.any() 所有元素为假才返回假 any([0,0,0 ...
- python基础-软件目录开发规范
为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风 ...
- python基础知识13-迭代器与生成器,导入模块
异常处理作业讲解 file = open('/home/pyvip/aaa.txt','w+') try: my_dict = {'name':'adb'} file.write(my_dict['a ...
- 开发技术--浅谈python基础知识
开发|浅谈python基础知识 最近复习一些基础内容,故将Python的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对 ...
随机推荐
- HDU44979 GCD and LCM (素因子分解+计数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 题意: 求有多少种(x,y,z)使得最小公倍数为l,最大公约数为g 分析: 我们将l,g进行素因 ...
- Visual Code的调试
Run 'Debug: Download .NET Core Debugger' in the Command Palette or open a .NET project directory to ...
- Windows cannot find ". Make sure you typed the name correctly, and then try again
https://answers.microsoft.com/en-us/windows/forum/windows_10-desktop/windows-10-explorerexe-error-wi ...
- Linux常用PDF阅读软件
1.福昕阅读器是一款PDF文档阅读器,对中文的支持度非常高.福昕阅读器作为全球最流行的PDF阅读器,能够快速打开.浏览.审阅.注释.签署及打印任何PDF文件. 2.evince是一个支持多种格式的文件 ...
- OpenSUSE42.3 leap 软件源设置
一.OpenSUSE软件源介绍: 1.默认已经加入了官方的软件源,不过我们自己也可以根据需要添加很多非官方软件源,添加软件源时要注意: 非官方源可能包含一些试验中的不稳定的软件包 不同的软件源之 ...
- php, hhvm与odp & Unix domain Socket方式
接上一篇,复习一下 启动php或hhvm: php/sbin/php-fpm start hhvm/bin/hhvm_control start 启动nginx或lighttpd: webserver ...
- android SIM Switch功能和配置
SIM Switch feature是Smart 3G switch feature在LTE版本号上发展演变而来的功能: MTK双卡双待单通版本号仅仅有一个3/4 G Protocol.所以同一时刻仅 ...
- XCode6报数组越界错误的问题
今天碰到一个非常奇葩的问题, 调试了半天: 错误:"index 0 beyond bounds for empty array", 意思就是说数据源数组为nil, 所以你调用直接 ...
- windows下搭建hadoop-2.6.0本地idea开发环境
概述 本文记录windows下hadoop本地开发环境的搭建: OS:windows hadoop执行模式:独立模式 安装包结构: Hadoop-2.6.0-Windows.zip - cygwinI ...
- Android自己定义效果——随机抽奖
那天逛android开源码的时候,看到一个wheel menu的自己定义效果,就是类似人家的那种转盘抽奖,把人家project看了下.认为非常好玩.可是不想在他上面改,于是就自己想了一个类似的随即抽奖 ...