返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础:模块化来搭项目
  • 735
分享到

Python基础:模块化来搭项目

基础项目Python 2023-01-31 00:01:07 735人浏览 八月长安

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

摘要

简单模块化 import 最好在最顶端 sys.path.append("..")表示把当前程序所在位置向上提了一级 在python3规范中,__init__.py并不是必须的。   文件结构: . ├── ut

简单模块化

  • import 最好在最顶端
  • sys.path.append("..")表示把当前程序所在位置向上提了一级
  • python3规范中,__init__.py并不是必须的。

  文件结构:

.
├── utils
│   ├── util.py
│   └── class_util.py
├── src
│   └── sub_main.py
└── main.py

 

# utils/utils.py

def get_sum(a, b):
    return a + b

 

# utils/class_utils.py

class Encoder(object):
    def encode(self, s):
        return s[::-1]

class Decoder(object):
    def decode(self, s):
        return ''.join(reverse(list(s)))

 

# main.py

from utils.utils import get_sum

print(get_sum(1, 2))

########## 输出 ##########

3

 

# src/sub_main.py

import sys
sys.path.append("..")

from utils.class_utils import *

encoder = Encoder()
decoder = Decoder()

print(encoder.encode('abcde'))
print(encoder.encode('edcba'))

########## 输出 ##########

edcba
abcde

 

项目模块化

   以下python代码用命令行运行main.py会出错,找不到proto.

├── proto
│   ├── mat.py
├── utils
│   └── mat_mul.py
└── src
    └── main.py

 

# proto/mat.py

class Matrix(object):
    def __init__(self, data):
        self.data = data
        self.n = len(data)
        self.m = len(data[0])

 

# utils/mat_mul.py

from proto.mat import Matrix

def mat_mul(matrix_1: Matrix, matrix_2: Matrix):
    assert matrix_1.m == matrix_2.n
    n, m, s = matrix_1.n, matrix_1.m, matrix_2.m
    result = [[0 for _ in range(n)] for _ in range(s)]
    for i in range(n):
        for j in range(s):
            for k in range(m):
                result[i][k] += matrix_1.data[i][j] * matrix_2.data[j][k]

    return Matrix(result)

 

# src/main.py

from proto.mat import Matrix
from utils.mat_mul import mat_mul


a = Matrix([[1, 2], [3, 4]])
b = Matrix([[5, 6], [7, 8]])

print(mat_mul(a, b).data)

########## 输出 ##########

[[19, 22], [43, 50]]

   有两个方法解决:

  1.在文件中强行修改sys.path[0]:

import sys

sys.path[0] = '/home/ubuntu/workspace/your_projects'

  2.在Python的虚拟环境中的activate文件,增加:(windows系统中无效)

export PYTHONPATH="/home/ubuntu/workspace/your_projects"

 

 参考

  极客时间《Python核心技术与实战》专栏

--结束END--

本文标题: Python基础:模块化来搭项目

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

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

猜你喜欢
  • Python基础:模块化来搭项目
    简单模块化 import 最好在最顶端 sys.path.append("..")表示把当前程序所在位置向上提了一级 在python3规范中,__init__.py并不是必须的。   文件结构: . ├── ut...
    99+
    2023-01-31
    基础 项目 Python
  • IDEA搭建Maven模块化项目的实现
    目录1.前言2. 软硬件环境3.项目搭建3.1.创建 SpringBoot 父项目3.2. 构建子项目centerdao3.3. 构建子项目centerweb4. 建立父子 Modu...
    99+
    2023-05-20
    IDEA搭建Maven模块化项目 IDEA搭建Maven项目
  • Python基础——5模块
    使用模块 ‘the first line is zhushi’ _author_ = ‘syz’ import sys def test(): args = sys.argv if len(args)==1: ...
    99+
    2023-01-30
    模块 基础 Python
  • Python可视化matplotlib模块基础知识
    目录1. matplotlib 模块概述 2. matplotlib.pyplot 相关方法 3. matplotlib.pyplot 图表展示 前言: 互联网时代下,在网络中每天都...
    99+
    2024-04-02
  • Python基础之hashlib模块subprocess模块logging模块
    目录一、hashlib模块基本操作与用法二、subprocess模块简介基本操作与用法三、logging模块简介基本操作与用法一、hashlib模块 什么是哈希模块: hashlib...
    99+
    2024-04-02
  • python基础-1:python模块概
       小生博客:http://xsboke.blog.51cto.com                                -------谢谢您的参考,如有疑问,欢迎交流一、 模块简介  1. 概念n个.py文件组成的代码集合就...
    99+
    2023-01-31
    模块 基础 python
  • Python基础——模块与包
    在Python中,可以用import导入需要的模块、包、库、文件等。 把工作路径导入系统路径 import os#os是工作台 import sys#sys是系统 sys.path.append(os.getcwd()) sys.p...
    99+
    2023-01-31
    模块 基础 Python
  • Python 常用基础模块(二):os模块
    目录 一、os模块介绍二、路径介绍三、常用方法详解3.1 getcwd()方法——获取当前工作目录(字符串)3.2 listdir()方法——返回指定路径下的目录名和文件名3.3 makedi...
    99+
    2023-09-09
    python 开发语言
  • IDEA搭建Maven模块化项目的实现方法
    今天小编给大家分享的是IDEA搭建Maven模块化项目的实现方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。目录前言 软硬件环境项目搭建1.创建 SpringBoot 父项目2. ...
    99+
    2023-07-06
  • Python基础之模块详解
    目录一、模块1、模块的四种形式2、为什么要用模块?二、如何用模块1、import 模块名导入重命名:smt变量指向span模块的名称空间导入多个模块2、from 模块名 import...
    99+
    2024-04-02
  • python基础学习16----模块
    模块(Module)的引入   import 模块名   调用模块中的函数的方式为 模块名.函数名 这种方式引入会相当于将模块中代码执行一遍,所以如果引入的模块中有输出语句,那么只写import 模块名,运行也会显示输出。 若...
    99+
    2023-01-30
    模块 基础 python
  • 第一模块:Python基础(二)
    目录 1.变量 常量 2.用户交互和注释 程序交互 注释 字符串 ...
    99+
    2023-01-31
    模块 基础 Python
  • maven多模块项目怎么搭建
    要搭建一个Maven多模块项目,可以按照以下步骤进行: 创建一个父模块:首先,在你的项目目录下创建一个空的文件夹作为父模块的根目...
    99+
    2023-10-26
    maven
  • Python基础之hashlib模块详解
    一、hashlib简介 什么叫hash: hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA5...
    99+
    2022-06-02
    Python hashlib模块 python模块
  • Python爬虫基础之requestes模块
    一、爬虫的流程 开始学习爬虫,我们必须了解爬虫的流程框架。在我看来爬虫的流程大概就是三步,即不论我们爬取的是什么数据,总是可以把爬虫的流程归纳总结为这三步: 指定 url,可以简单的理解为指定要爬取的网址 发送请求。...
    99+
    2022-06-02
    Python requestes模块 python爬虫
  • Python基础第三方模块requestsopenpyxl
    目录一、第三方模块的下载与使用1、什么是第三方模块2、如何安装第三方模块方式一:pip工具方式二:pycharm中下载3、注意事项1、报错并有警告信息2、报错,提示关键字3、报错,无...
    99+
    2024-04-02
  • Python基础之函数和模块
    函数的基本使用 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数的使用:1.定义函数;2.调用函数。 函数的作用:能提高应用的模...
    99+
    2023-01-31
    函数 模块 基础
  • python基础之模块的导入
    import导入模块 import time #导入的时模块中的所有内容 print(time.ctime()) #调用模块中的函数 # import 到首次导入模块的时候...
    99+
    2024-04-02
  • ES6基础语法之模块化介绍
    ES6 引入了模块化, ES6 的模块化分为导出(export) @与导入(import)两个模块。 ES6模块化特点: (1)ES6 的模块自动开启严格模式,不管你有没有在模块头部...
    99+
    2024-04-02
  • Python基础之内置模块详解
    目录一、os二、shutil三、sys四、random五、hashlib六、configparser七、xml八、json九、time十、datetime一、os import ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作