iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >学习python的第十九天(包,软件开发
  • 540
分享到

学习python的第十九天(包,软件开发

软件python 2023-01-31 00:01:23 540人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

1.包 1.什么是包 包是模块的一种形式,包的本质就是一个含有__init__.py的文件的文件夹 2.为什么用包 当一个模块功能太多的时候不方便进行管理,我们用包来进行管理 3.包的使用 1.导入包发生的三件事 创建一个包的名称空间

1.包

1.什么是包

包是模块的一种形式,包的本质就是一个含有__init__.py的文件的文件夹

2.为什么用包

当一个模块功能太多的时候不方便进行管理,我们用包来进行管理

3.包的使用

1.导入包发生的三件事

  1. 创建一个包的名称空间

  2. 由于包是一个文件夹,无法执行包,因此执行包下的__init__.py文件,将执行过程中产生的名字存放于包名称空间中(即包名称空间中存放的名字都是来自于__init__.py)且init中文件执行导入文件的路径以运行文件为基准

  3. 在执行文件中使用包内的名称,是指向包的名称空间

2.包的两种导入方式

  1. import ...
  2. from ... import...

两种导入方式与模块的相似,只是导入包的时候运行的是包里面的init文件

3.个人理解包导入的两种方式路径的写法

关于.的使用,在(from.)是当前目录.(from..)当前文件目录的上一级,.要和from连用才有当前目录,上一级目录说法,(import.)不是当前,import相当于python的环境配置路径

2.软件开发目录规范

为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要,简而言之就是把软件代码分文件目录。假设你要写一个ATM软件,你可以按照下面的目录结构管理你的软件代码:

ATM/
|-- core/
|   |-- src.py  # 业务核心逻辑代码
|
|-- api/
|   |-- api.py  # 接口文件
|
|-- db/
|   |-- db_handle.py  # 操作数据文件
|   |-- db.txt  # 存储数据文件
|
|-- lib/
|   |-- common.py  # 共享功能
|
|-- conf/
|   |-- settings.py  # 配置相关
|
|-- bin/
|   |-- run.py  # 程序的启动文件,一般放在项目的根目录下,因为在运行时会默认将运行文件所在的文件夹作为sys.path的第一个路径,这样就省去了处理环境变量的步骤
|
|-- log/
|   |-- log.log  # 日志文件
|
|-- requirements.txt # 存放软件依赖的外部Python包列表,详见https://pip.readthedocs.io/en/1.1/requirements.html
|-- README  # 项目说明文件
# run.py

import sys
import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from core import src

if __name__ == '__main__':  #是导入run的时候不会调用函数
    src.run()
# settings.py

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

DB_PATH = os.path.join(BASE_DIR, 'db', 'db.txt')
LOG_PATH = os.path.join(BASE_DIR, 'log', 'user.log')

# print(DB_PATH)
# print(LOG_PATH)
# src.py

from conf import settings
from lib import common


def login():
    print('登陆')


def reGISter():
    print('注册')
    name = input('username>>: ')
    pwd = input('passWord>>: ')
    with open(settings.DB_PATH, mode='a', encoding='utf-8') as f:
        f.write('%s:%s\n' % (name, pwd))
        # 记录日志。。。。。。
        common.logger('%s注册成功' % name)
        print('注册成功')


def shopping():
    print('购物')


def pay():
    print('支付')


def transfer():
    print('转账')


func_dic = {
    '1': login,
    '2': register,
    '3': shopping,
    '4': pay,
    '5': transfer,
}


def run():
    while True:
        print("""
        1 登陆
        2 注册
        3 购物
        4 支付
        5 转账
        6 退出
        """)
        choice = input('>>>: ').strip()
        if choice == '6': break
        if choice not in func_dic:
            print('输入错误命令,傻叉')
            continue
        func_dic[choice]()
# common.py

import time
from conf import settings


def logger(msg):
    current_time = time.strftime('%Y-%m-%d %X')
    with open(settings.LOG_PATH, mode='a', encoding='utf-8') as f:
        f.write('%s %s' % (current_time, msg))

--结束END--

本文标题: 学习python的第十九天(包,软件开发

本文链接: https://www.lsjlt.com/news/182678.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 学习python的第十九天(包,软件开发
    1.包 1.什么是包 包是模块的一种形式,包的本质就是一个含有__init__.py的文件的文件夹 2.为什么用包 当一个模块功能太多的时候不方便进行管理,我们用包来进行管理 3.包的使用 1.导入包发生的三件事 创建一个包的名称空间...
    99+
    2023-01-31
    软件 python
  • 学习python的第二十天(dateti
    1.datetime模块(用于修改日期) import datetime print(datetime.datetime.now(),type(datetime.datetime.now())) 2019-06-10 19:37:55....
    99+
    2023-01-31
    十天 python dateti
  • 我的python学习--第十三天
    nginx + uwsgi + flask一、安装1、安装uwsgi[root@yaoliang day_13]# wget http://projects.unbit.it/downloads/uwsgi-2.0.4.tar.gz [ro...
    99+
    2023-01-31
    第十三天 python
  • 我的python学习--第十一天
    上午:作业讲解bootstrap-multiselect插件sweetalert插件下午:datatables----表格插件datetimepicker----时间插件Validform----表单验证插件锁定用户禁止登录---...
    99+
    2023-01-31
    第十一天 python
  • 学习python的第二十一天(hashl
    1.hashlib模块(文件传输中将传输内容用指定算法进行处理) hash是一种算法(Python3.版本里使用hashlib模块代替了md5模块和sha模块,主要提供 SHA1、SHA224、SHA256、SHA384、SHA512、...
    99+
    2023-01-31
    python hashl
  • 我的python学习--第十四天(一)
    一、运维管理系统(基于Flask)回顾1、权限控制  通过session实现权限控制,session是一个全局字典,当用户登录时,可以获取到用户的用户名,通过查找数据库获取用户的权限保存进session中,在每次页面跳转时同过查询sessi...
    99+
    2023-01-31
    第十四天 python
  • 学习python的第二十一天(loggi
    1.logging模块 用于程序的运行日志 1.初级 #首先程序运行分会出现5中情况 1.logging.info('info') #程序正常运行级别为10 2.logging.debug('debug') #程序调试...
    99+
    2023-01-31
    python loggi
  • 我的python学习--第十二天(二)
    Python异常处理  Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员,所有异常都从基类Exception继承,而且都在excepti...
    99+
    2023-01-31
    二天 python
  • 学习python的第十二天(文件的详细操
    一.文件打开常用的三总方式 1.文件打开r模式 只读不能写 with open('a.txet','r',encoding='gbk') as a: # 文件路径 文件打开方式 解码方式 变量名 ...
    99+
    2023-01-31
    二天 文件 详细
  • 学习python的第二十天(json模块
    1.josn模块(用于指定数据类型文件快速读写修改) 1.指定的数据类型 dict(字典) str(字符串) int/float(整型/浮点型) bool中的False,True,None 2.dumps/loads loads 用于内...
    99+
    2023-01-31
    十天 模块 python
  • 学习python的第二十天(time模块
    1.三种时间的显示样式 1.时间戳 1.相关函数 1.time() 2.显示样式 import time print(time.time()) #1560150343.5837357 距离计算机元年1970年1月1日00:00:0的过...
    99+
    2023-01-31
    十天 模块 python
  • 学习python的第十二天(编码,解码,
    1.编码解码 1.字符串编码 字符 --------》翻译过程 -------》数字 2.字符串解码 字符 --------》翻译过程 -------》数字 3.编码解码用到的翻译工具 中国:GBK 外国:日本—Shift_JIS,美国...
    99+
    2023-01-31
    二天 python
  • 学习python的第二十天(os模块,s
    1.os模块(功能类似操作系统与文件交互) 1.常用模块功能 1.创建文件 1.mkdir 2.移除文件 1.remove 删除指定文件 2.rmdir 删除单级空目录,若目录不为空则无法删除 3.removedirs 若目录为空,则删...
    99+
    2023-01-31
    十天 模块 python
  • 学习python的第十七天(二分法,有名
    一.二分法 二分法个人理解是一种算法的方式在一个有序的序列,区中间值,把中间值与想要的值进行对比从而一次一次的减少搜索范围举例 #给与一个列表1-100, num_list = [num fornum in range(1,101)] ...
    99+
    2023-01-31
    有名 十七天 python
  • 学习python的第十四天(可变长参数,
    一.可变长参数 1.可变长形参之(*) 形参中的会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给后的参数。需要注意的是:*后的参数名约定俗成为args。 def sum_self(*args): res = 0 ...
    99+
    2023-01-31
    变长 参数 第十四天
  • 学习python的第十五天(函数的装饰器
    一.装饰器 1.函数装饰圈的定义 函数装饰器:一种装饰函数的函数 2.个人理解两层函数装饰器 两层函数装饰器个人觉得他其实就是把需要装饰的函数名丢入形参,然后用一个嵌套的函数对其头尾进行添加程序,但是不能减少他的程序内容,他的原来程序不...
    99+
    2023-01-31
    函数 python
  • 学习python的第十一天(集合数据类型
    1.集合数据类型 1.定义 用{}中间值用,隔开,且集合中元素排列是无序的,而且如果有相同元素会只保留一个 2.算法 1.必须掌握 1.长度len set_1 = {1,2,3,4,5} print(len(set_1)) #5 2.成...
    99+
    2023-01-31
    数据类型 第十一天 python
  • 学习python的第十八天(面向对象编程
    一.面向对象编程 ​ 面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么…… 与工厂的工艺流程差不多,前后都有影响 优点:复杂的问题流程化,进而简单化,调理清晰. 缺点:拓展性不行 二.对...
    99+
    2023-01-31
    面向对象 python
  • 学习python的第十八天(模块导入及使
    一.模块导入及使用 1.模块导入的两种方式 我们拿time模块并使用其中的time功能进行举例 a)第一种 import time print(time.time) import首次导入模块发生了3件事: 打开模块文件 执行模块对应的...
    99+
    2023-01-31
    模块 python
  • 学习python的第四天(python的
    一.Jupyter的安装以及运行 1.Jupyter的安装 运行CMD,在CMD中输入pip3 --default-timeout=100 install -U jupyter 再输入pip3 install jupyter_contr...
    99+
    2023-01-31
    第四天 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作