包及内置模块与软件开发目录规范


  • 目录

    • 绝对导入与相对导入
    • 包的简介
    • 内置模块
    • 软件开发目录规范
    • 编程思想
  • 绝对导入与相对导入

   1.绝对导入:以执行文件所在的sys.path为起始路径 往下一层层查找
1.import cour.settings
  cour.settings.func()   # 我拥有强大的功能
2.import sys
sys.path.append('D:/code/python/pythonProject1/day23/cour')
from cour import settings
settings.func() # 我拥有强大的功能
   2.相对导入:相对导入可以不参考执行文件所在的路径 直接以当前模块文件路径为准

    2.1 . 当前路径

    2.2 .. 上一层路径

    2.3 ../.. 上上层路径

      2.4 相对导入在项目比较复杂的情况下容易出错,所以尽量少用推荐绝对导入

    2.5 相对导入只能在模块文件中使用,不能在执行文件中使用

from . import settings01

from cour1.settings01 import func1
func1() # 哈哈哈哈
  • 包的简介

   1.定义:带有空的__init__.py文件的文件夹
   2.作用:分类汇总存放多个py文件,为了方便管理
   3.使用:import+包名  导入包名其实导入的是__init__.py文件
   4.注:

    针对python3解释器 其实文件夹里面有没有__init__.py已经无所谓了 都是包

            但是针对Python2解释器 文件夹下面必须要有__init__.py才能被当做包

  • 编程思想

   1.小白阶段:面条版代码
   2.函数阶段:按照功能封装函数
   3.模块阶段:按照功能归类至不同模块
  • 软件开发目录规范

   1.bin文件夹:放置程序启动文件
   2.conf文件夹:放置程序配置文件
   3.cour文件夹:放置程序核心逻辑文件
   4.lib文件夹:放置程序公共信息文件
   5.db文件夹:放置程序数据文件
   6.log文件夹:放置程序日志文件
   7.interface文件夹:放置程序接口文件
   8.readme文件:类似于说明书信息文件
   9.requirements文件:第三方模块及说明信息文件

   包及内置模块与软件开发目录规范

   补充说明:在编写软件时可以不完全遵循列举的文件名

        1.start.py可以放在bin文件夹下也可以直接放在项目根目录
        2.db文件夹等我们学到真正的项目会被数据库软件替代
        3.log文件夹等我们学到真正的项目会被专门的日志服务替代

  • 内置模块

   1.time模块

    1.1 时间戳:time.time 现在至1970年1月1日0时0分0秒的秒数

import time
print(time.time())     # 1657795727.8664849

    1.2 结构化时间:time.getime

import time
print(time.gmtime())   # time.struct_time(tm_year=2022, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=49, tm_sec=44, tm_wday=3, tm_yday=195, tm_isdst=0)

    1.3 格式化时间:time.strftime

     1.3.1 时间表达方式 :

       time.strftime(‘%Y-%m-%d %T’)

       time.strftime(‘%Y-%m-%d %X’)

       time.strftime(‘%Y-%m-%d %H:%M:%S’)

       time.strftime(‘%H:%M:%S’)

包及内置模块与软件开发目录规范

import time
print(time.strftime('%Y-%m-%d %T'))         # 2022-07-14 18:59:02
print(time.strftime('%Y-%m-%d %X'))         # 2022-07-14 18:59:02
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2022-07-14 18:59:02
print(time.strftime('%H:%M:%S')) # 18:59:02
 包及内置模块与软件开发目录规范
    2.collections模块

    2.1 双端队列deque:列表两端快速增加和删除数据   

from collections import deque
l1 = deque()
l1.append(33)
l1.append(44)
l1.appendleft(55)
print(l1)        # deque([55, 33, 44])

    2.2 具名元组namedtuple

from collections import namedtuple
poker = namedtuple('坐标', ['x', 'y', 'z'])
res = poker(10, 20, 15)
print(res)       # 坐标(x=10, y=20, z=15)

    2.3 有序字典OrderedDict

from collections import OrderedDict
l1 = dict([('a', 1), ('b', 2)])
print(l1)         # {'a': 1, 'b': 2}

 包及内置模块与软件开发目录规范

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/274500.html

(0)
上一篇 2022年7月15日 10:27
下一篇 2022年7月15日 10:42

相关推荐

发表回复

登录后才能评论