模块 导入方式 软件开发目录规范

1.模块

模块是一系列功能的结构体

模块的三种来源:内置,第三方,自定义

模块的四种表现形式:
用python编写的py文件
已被编译为共享库或DLL的C或C++扩展(了解)
将一系列模块组织到一起的文件夹
使用C编写并连接到python解释器的内置模块

模块极大的提高了开发效率(内置,第三方),当程序比较庞大时,一个项目的程序拆分多个py文件,将公共用到的方法写到一个py文件,其他文件以模块的形式调用

知道哪个是执行文件,哪个是导入文件.

import导入模块

在运行执行文件时,会创建一个执行文件的名称空间

首次导入模块

1.执行导入文件

2.运行导入文件中代码,将产生的变量名和变量值放入导入文件的名称空间

3.在执行文件中产生一个指向名称空间的名字.

多次导入不会再执行模块文件,会沿着第一次导入的成果

函数名加括号在哪都可以调用函数,函数在定义阶段,名字查找就已经固定了,不会因为调用位置的变化而改变.

import os time md

当几个模块有相同部分或者都使用一个模块,可以如上操作

当几个模块没有联系的情况下,应该多次导入.

import os   import time   import md

通常导入模块会写在文件开头

当文件名比较复杂时,可以给模块名取值

异常有两类:

1.语法结构错误,需要修改,异常捕获无法完成

2.逻辑错误:异常捕获可以处理

d = (i for i in range(3))
while True:
    try:
        print(d.__next__())
        print(name)
    except Exception:
        break
name = "jason"

from   import   导入模块

先创建执行文件中的名称空间

首次导入模块

1.运行导入模块

2.将产生的名字放到导入模块的名称空间

3.直接拿到指向导入模块的名称空间中的某个值的名字

缺点:

1.访问模块中的名字不需要加模块名前缀

2.在访问模块中的名字可能与当前执行文件中的名字冲突

__all__可以指定当所在py文件被当做模块导入的时候可以限制导入者能够拿到的名字个数

循环导入问题及解决思路

如果出现循环导入问题,说明程序设计的不合理,循环导入问题应该在程序设计阶段应该避免

解决循环导入问题的方式    1.方式1        将循环导入的句式写在文件最下方()    2.方式2        函数内导入模块


__name__用法
def index1():
    print(‘index1‘)
def index2():
    print(‘index2‘)
if __name__ == ‘__main__‘:  # 快捷写法,main直接tab键
    index1()
    index2()
#当文件被当作执行文件执行时,__name__,打印结果是__main__
#当文件被当作模块导入时,__name__,打印结果是模块名(没有后缀)
模块的查找顺序
    1.先从内存中找
    2.内置中找
    3.sys.path中找(环境变量):
        一定要分清楚谁是执行文件谁是被导入文件
        是一个大列表,里面放了一堆文件路径,第一个路径永远是执行文件所在的文件夹
绝对导入
绝对导入必须依据执行文件所在的文件夹路径为准
    1.绝对导入无论在执行文件中还是被导入文件都适用
相对导入
    .代表的当前路径
    ..代表的上一级路径
    ...代表的是上上一级路径
注意相对导入不能再执行文件中使用
    相对导入只能在被导入的模块中使用,使用相对导入 就不需要考虑
    执行文件到底是谁 只需要知道模块与模块之间路径关系
项目名
bin文件夹
        start.py项目启动文件
conf文件夹
        seetings.py项目配置文件
core文件夹
        src.py项目核心逻辑文件
db文件夹
        数据相关
lib文件夹
        common.py项目所用到的公共资源
log文件夹
        log.log项目的日志文件
readme文件夹   文本文件  介绍项目     
import sys
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR)
"""
pycharm会自动将你新建的最顶层的目录自动添加到环境变量中
上面这两句话 不是针对你的 是针对下载你这个软件的用户
"""
from core import src
if __name__ == ‘__main__‘:
    src.run()
 

原文地址:https://www.cnblogs.com/zrh-960906/p/11197115.html

时间: 2024-08-28 21:29:44

模块 导入方式 软件开发目录规范的相关文章

Python模块:Re模块、附软件开发目录规范

Re模块:(正则表达式) 正则表达式就是字符串的匹配规则 正则表达式在多数编程语言里都有相应的支持,Python里面对应的模块时re 常用的表达式规则:(都需要记住) " . "   #  默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 " ^ "  #  匹配字符开头,若指定flags MULTILINE,这种也可以匹配上("^a","\nabc\neee",flags=re.MUL

Python学习————软件开发目录规范

软件开发目录规范 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下 Foo/ |-- core/ | |-- core.py | |-- api/ | |-- api.py | |-- db/ | |-- db_handle.py | |-- lib/ | |-- common.py | |-- conf/ | |-- settings.py | |-- run

Python的软件开发目录规范

软件开发的目录规范: 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下 Foo/ |-- core/ | |-- core.py | |-- api/ | |-- api.py | |-- db/ | |-- db_handle.py | |-- lib/ | |-- common.py | |-- conf/ | |-- settings.py | |-- r

模块的使用,软件开发目录规范

一.模块 1.定义:就是一系列功能的结合体 2.模块的三种来源: ①.内置的(Python解释器自带) ②.第三方的(别人写的) ③.自定义的(你自己写的) 3.模块的四种表现形式 ①.使用Python编写的py文件(也就意味着py文件也可以称之为模块:一个py文件也可以称之为一个模块) ②.已被编译为共享库或DLL的c或c++扩展(了解) ③.把一系列模块组织到一起的文件夹(文件夹下有一个__init__.py文件,改文件称之为包) ④.使用c编写并连接到Python解释器的内置模块 4.使用

软件开发目录规范

为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时间去

08-03 开发软件的目录规范

软件开发目录规范 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下 Foo/ |-- core/ | |-- core.py | |-- api/ | |-- api.py | |-- db/ | |-- db_handle.py | |-- lib/ | |-- common.py | |-- conf/ | |-- settings.py | |-- run

4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块

4 Apr 18 上节课复习:函数在一个程序内被使用,模块可以被几个程序共享使用 一.软件开发目录 confàsettings.py core(主要逻辑)àsrc.py dbàdb.txt lib(库)àcommon.py bin(入口,启动)àstart.py logàaccess.log readme(说明书)   二.logging模块的使用 日志分为五个级别:debug 10, info 20, warning 30, error 40, critical 50 若日志级别设为10,包括

python18 时间模块 系统模块(os,os.path) 项目开发目录规范

复习 '''1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块的集合体,通过包内的__init__文件来管理包中所有模块提供给外界的名字 -- 存放所以模块的文件夹名就是包名 4.导包三件事:1)编译__init__文件的pyc2)执行__init__文件形成全局名称空间,作为包的全局名称空间,包能直接使用的名字全部是__init__文件中提供的3)在导包文件中形成

模块(二)之软件开发目录,常用模块

软件开发目录 我们学习编程开始都是将所有的代码全部都放到一个文件里面,后来我们学习函数,模块之后才会说将自己程序的功能具体分一下类,但是因为我们写的程序是需要用户来使用的,对于怎样编程,怎样分类他们都是不了解的,这就需要我们对于软件或者说是程序的开发有一个明确的目录,让不管是自己还是维护人员都可以知道这个程序的大体内容.目录大概结构如下: 对于目录的具体分类大体有以下几类: 1.bin:启动目录,里面只需要有一个启动程序即可,所有文件的启动都由这里开始 2.conf:配置目录,里面是关于程序运行