一个软件项目的开发,除了需要很厉害的开发能力,同时在软件开发项目时,也需要对项目结构有良好的组织能力,将功能进行拆分,不同的功能放在不同的目录或文件中,方便日后的维护,升级等操作。比如核心代码的目录,配置的目录,公共库的目录,日志的目录等!

  示例:

    

  这是个小项目的开发框架,从目录结构上来看,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. 去除html的 标签
  2. 12款非常精致的免费 HTML5 & CSS3 网站模板
  3. Linux 发行版本及其基于
  4. 依赖注入 – ASP.NET MVC 4 系列
  5. redis 的消息发布订阅
  6. apache 配置多个虚拟主机
  7. 在ubuntu上面安装phpmyadmin后,报404错误
  8. ie兼容整理
  9. [HDOJ5773]The All-purpose Zero(贪心,DP)
  10. Mysql中的count()与sum()区别
  11. iOS开发——UI篇OC篇&UITableView简单封装
  12. Node.js 入门(2)
  13. strace基本操作
  14. SQLLoader7(只导入数据文件的其中几行记录)
  15. [转]C# 中的.pdb/ .vshost.exe/ .vshost.exe.manifest文件讨论
  16. 自己写shell命令pwd
  17. Highway Networks
  18. memset的实验
  19. 总结各类错误(always online)
  20. java容器类4:Queue深入解读

热门文章

  1. hadoop1.0.3学习笔记
  2. UITextView自己定义键盘和系统键盘
  3. Mysql忘记rootpassword
  4. JAVA 不同类载入器命名空间的理解
  5. how to backup and restore database of SQL Server
  6. 24. 在IDEA中使用JUnit进行方法测试
  7. quartz 持久化 数据库表
  8. mybatis集成到spring理解
  9. ES6学习基础
  10. Nginx安装与升级(包括虚拟主机)