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的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对 ...
随机推荐
- JAVA爬虫Nutch、WebCollector的正则约束
爬虫爬取时,须要约束爬取的范围. 基本全部的爬虫都是通过正則表達式来完毕这个约束. 最简单的,正则: http://www.xinhuanet.com/.* 代表"http://www.xi ...
- uip UDP server广播模式(client能够随意port,而且主动向client发送数据)
眼下移植uip,发现UDP server模式下,必须指定本地port以及clientport,否则仅仅能讲clientport设置为0,才干接收随意port的数据,可是无法发送数据,由于此时clien ...
- Metasploit - Tips for Evading Anti-Virus
绕过杀毒软件,有很多钟方法.此处介绍一种,编写python程序调用shellcode,并使用Pyinstaler将python程序编译为exe程序. 准备工作:(Windows XP环境下编译) 将P ...
- SQL Server数据全同步及价值分析[终结版]
SQL Server数据全同步[终结版] 版权全部.转载请注明出处.谢谢! 经过两天的同步编写和測试.出了第一个Release版本号: 1. 本函数仅支持单向同步.即从一个主数据库想多个从数据库同步 ...
- 如何保证对象线程内唯一:数据槽(CallContext)
CallContext 是类似于方法调用的线程本地存储区的专用集合对象,并提供对每个逻辑执行线程都唯一的数据槽.数据槽不在其他逻辑线程上的调用上下文之间共享.当 CallContext 沿执行代码路径 ...
- Mybatis传多个参数(推荐)
Dao层的函数方法 int deleteMsgById(@Param("name") String name,@Param("id") String id); ...
- SQL SERVER 新增表、新增字段、修改字段 判断表是否存在
// 新增之前判断表是否存在 IF NOT EXISTS (SELECT NAME FROM SYSOBJECTS WHERE ID = OBJECT_ID('tb_MessageHistory')) ...
- HDU 4513 吉哥系列故事――完美队形II
http://acm.hdu.edu.cn/showproblem.php?pid=4513 吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others) ...
- 发送邮件被退回,提示: Helo command rejected: Invalid name 错误
我自己配置的 postfix + dovecot server, 配置了outlook 后, 相同的账号. 在有的电脑上能收发成功, 在有的电脑上发送邮件就出现退信.提示 Helo command r ...
- Template template parameter(模板參数) example
/********************************************************************************* Copyright (C), 19 ...