Python 每个模块和包一个类

2023-12-29

我正在尝试用 Python 构建我的应用程序。从 C#/Java 背景回来后,我喜欢每个文件一个类的方法。我希望我的项目树看起来像这样:

[Service]
    [Database]
        DbClass1.py
        DbClass2.py
    [Model]
        DbModel1.py
        DbModel2.py
    TheService.py
[ServiceTests]
    [Database]
        DbClass1Tests.py
        DbClass2Tests.py
    [Model]
        DbModel1Tests.py
        DbModel2Tests.py
    TheServiceTests.py
  1. Python 中每个文件一个类的方法可以吗?
  2. 是否可以以这种方式创建包/模块,以便包像 Java 的包或 .NET 的命名空间一样工作,即在 DbModel1Tests.py 中:

    import Service.Model
    
    def test():
       m = DbModel1()
    

Q1.您可以在 Python 中使用每个文件 1 个类的样式,但这并不常见。

Q2。你必须使用from Service.Model import *并做一些事情Service/Model/__init__.py这通常是不受欢迎的。避免import *在Python中

我个人对此的建议:Python 是notC#/Java。试图将其弯曲,使其看起来像 $other_language 会导致挫败感和糟糕的用户体验。

请记住:

  • 除了 Python 模块中的类之外,你还可以有其他东西(例如函数)
  • 您不必从模块导入类,除非您需要实例化该类。特别是,如果您的代码仅使用 DbModel1 的实例并将其作为参数传递给您的函数/方法,则无需在该部分代码中导入
  • from Service.Model.DbModel1 import DbModel1看起来很糟糕。更喜欢from service.model import DbModel1:避免在文件名和目录名中使用大写字母,并在文件中对类/函数进行逻辑分组(而不是像每个文件系统 1 个类那样将它们分组在目录中。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 每个模块和包一个类 的相关文章

  • 如何编写嵌套的 __init__.py 文件

    我正在努力解决嵌套问题 init py在我正在编写的Python包中 该包具有以下架构 module init py submodule1 init py source py submodule2 init py source py sub
  • 如何避免使用 python 处理空的标准输入?

    The sys stdin readline 返回之前等待 EOF 或新行 所以如果我有控制台输入 readline 等待用户输入 相反 我想打印帮助并在没有需要处理的情况下退出并显示错误 而不是等待用户输入 原因 我正在寻找一个Pytho
  • Python 切片对象和 __getitem__

    python 中是否有内部的东西来处理传递给的参数 getitem 不同 并自动转换start stop step构造成切片 这是我的意思的演示 class ExampleClass object def getitem self args
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 反编译Python 3.9.2的PYC文件[重复]

    这个问题在这里已经有答案了 目前 我有一个 3 9 2 版本的 python 的 PYC 文件 P S 这适用于所有 3 9 及更高版本 我正在尝试反编译 PYC 文件 但它显示错误 因为 uncompyle6 或者更确切地说 新版本 de
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 协程从未被等待

    我正在使用一个简单的上下文管理器 其中包含一个异步循环 class Runner def init self self loop asyncio get event loop def enter self return self def e
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • Python 中维基百科 API 中的 DisambiguationError 和 GuessedAtParserWarning

    我想获得维基百科与搜索词相关的可能且可接受的名称列表 在这种情况下是 电晕 当输入以下内容时 print wikipedia summary Corona 这给出了以下输出 home virej local lib python3 8 si
  • 使用另一个数据帧在数据帧中创建子列

    我对 python 和 pandas 很陌生 在这里 我有一个以下数据框 did features offset word JAPE feature manual feature 0 200 0 aa 200 200 0 200 11 bf
  • 为什么 __dict__ 和 __weakref__ 类从未在 Python 中重新定义?

    类创建似乎从来没有re 定义 dict and weakref class属性 即 如果它们已经存在于超类的字典中 则它们不会添加到其子类的字典中 但始终re 定义 doc and module class属性 为什么 gt gt gt c
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • 带 Flask 的 RPI dht22:无法将第 4 行设置为输入 - 等待 PulseIn 消息超时

    我正在尝试制作一个 Raspberry Pi 3 REST API 使用 DHT22 提供温度和湿度 整个代码 from flask import Flask jsonify request from sds011 import SDS01
  • 如何使用 python 定位和读取 Data Matrix 代码

    我正在尝试读取微管底部的数据矩阵条形码 我试过libdmtx http libdmtx sourceforge net 它有 python 绑定 当矩阵的点是方形时工作得相当好 但当矩阵的点是圆形时工作得更糟 如下所示 另一个复杂问题是在某
  • 如何(安全)将 Python 对象发送到我的 Flask API?

    我目前正在尝试构建一个 Flask Web API 它能够在 POST 请求中接收 python 对象 我使用 Python 3 7 1 创建请求 使用 Python 2 7 运行 API 该 API 设置为在我的本地计算机上运行 我试图发

随机推荐

  • ArrayList 容量大小增加奇怪的行为

    当 ArrayList 想要存储比实际容量更多的元素时 它会增加容量 这是非常经济高效的操作 因为我们实际上将所有数据从以前的 ArrayList 复制到容量更大的新 ArrayList 中 但是我想知道 当 ArrayList 只是需要更
  • 如何处理 Angular 和 Django 应用程序中的第一个请求

    我有一个问题 我的家乡网址是 而且在 Django 中我的主页 url 是 stateProvider state home url controller HomeController resolve cities getAvailbleC
  • 如何应对500万用户? ASP.NET 身份

    我正在运行一个 ASP NET mvc5 应用程序 目前有 500 万用户 它托管在 Azure 云中 对于身份验证 我使用 EntityFramework 的 Asp Net Identity 但是 用户越多 注册功能就越慢 我尝试缩放数
  • Netlogo:运行时创建小世界网络

    我正在尝试生成一个小世界类型的网络 https en wikipedia org wiki Small world network https en wikipedia org wiki Small world network 在我创建的
  • Mongodb 读取首选项

    SETUP 我有 mongodb 的一个主实例和两个辅助实例 两个辅助实例之一托管在与我的 Web 应用程序相同的区域中 我正在使用 pymongo 进行连接 QUERY 如何以较低的延迟连接到辅助设备 目前我正在这样做 from pymo
  • 如何使用 jquery 动态地将新项目添加到此表单内的下拉列表中?

    document ready function var element form element on mousedown function event element
  • Javascript:仅读取大型服务器文本文件的最后 x 行数

    今天我正在处理非常大的日志文件 我想通过 RPi 上的 lighttpd 显示它们 但它们每天都在变大 因此很快将需要很长时间来加载 为了防止这个问题 我想我可以有一个按钮来读取 比如说这个日志文件的最后 500 行 当然我对javascr
  • 如何在 Windows 10 上弹出 USB 驱动器(IOCTL_STORAGE_EJECT_MEDIA 不再足够)

    在 Windows 上弹出 USB 驱动器的惯例是按以下顺序进行 CreateFile drive letter with read write rights file share read and write DeviceIoContro
  • Eclipse 风格工具提示库?

    Does anyone know of an open source swing tooltip library that works like eclipse s tooltips Specifically the functionali
  • 在 WinForms 中,UI 中是否可以有多个线程?

    我想答案是否定的 我在 stackoverflow 上检查了类似的问题 但它们似乎根据特定解决方案的需要走了不同的方向 但可能错过了一些东西 WinForms 应用程序中是否可以有多个 UI 线程 我正在重构并想知道是否应该使用 Concu
  • 仅 WPF TabItem 标题样式

    我正在编写一个 WPF 应用程序 并尝试设置 TabItem 标头的样式 仅在选择时显示背景颜色更改的边框 问题是 当我添加该样式时 它会弄乱 TabItem 中 TextBlock 项目的样式 我不是 WPF XAML 专家 下面是我在
  • 动态创建div时如何显示/隐藏div

    我正在开发评论系统 对评论进行两级重播 我在如何显示和隐藏 div 方面遇到问题 因为它的 id 不同 我尝试了以下方法
  • 构建定义——只有空队列

    如果我正在创建构建定义 则无法选择默认代理队列 不久前 我可以创建包含默认队列的构建定义 我不知道改变是什么 它不再起作用了 如果我去编辑正确创建的构建定义 然后再次尝试创建定义 我可以选择默认队列 这是什么原因呢 在创建之前编辑现有的构建
  • 正则表达式验证 UTC 日期时间格式

    我想验证日期时间格式 例如 2014 08 29T06 44 03Z 为此我正在寻找一个reg ex 尝试了几种组合 但这些对我不起作用 试试这个正则表达式 b 0 9 4 0 9 2 0 9 2 T 0 9 2 0 9 2 0 9 2 Z
  • 在 word2vec Gensim 中获取二元组和三元组

    我目前在我的 word2vec 模型中使用 uni gram 如下所示 def review to sentences review tokenizer remove stopwords False Returns a list of se
  • IndexError:索引超出范围:7

    我正在使用名为财务数据质量管理企业版 FDMEE 的 Oracle EPM 产品 我编写了一个 Jython 脚本来解析数据文件并将其推送到 FDMEE 产品架构中的自定义表 当我推送数据文件的子集时 它工作正常 但是当我解析整个数据文件时
  • Git SVN 忽略路径如何工作(忽略每日构建标签)?

    我正在尝试使用 git svn 克隆 svn 存储库 该存储库具有我想忽略的每日构建标记 我正在尝试使用 ignore paths 选项来执行此操作 但我仍然将每日构建标签作为我的存储库中的分支 最近有一个类似的 但到目前为止尚未得到解答
  • 连接一元参数的模板参数包

    虽然说 std add pointer是一元的 以下代码被 GCC 7 0 0 20160608 和 Clang 3 9 0 接受 template
  • 在 Clojure 中测试对象是否为 Java 原始数组

    Clojure 中检测对象是否为 Java 原始数组的最佳方法是什么 我需要这个的原因是对原始数组进行一些特殊处理 这可能看起来像 if byte array object handle byte array object 它是一段对性能相
  • Python 每个模块和包一个类

    我正在尝试用 Python 构建我的应用程序 从 C Java 背景回来后 我喜欢每个文件一个类的方法 我希望我的项目树看起来像这样 Service Database DbClass1 py DbClass2 py Model DbMode