小编mal*_*0ir的帖子

我可以将一个类定义放入__init__.py吗?

我有一个类似于的类结构的包. Baseclass是一个典型的,简单的父类,用于几个单独的层次结构.

我的包布局如下所示:

__init__.py (empty)
base.py
ab.py
cd.py
ef.py
Run Code Online (Sandbox Code Playgroud)

Base类放入__init__.py而不是仅为一个类创建单独的模块是一个好主意还是一个好习惯?通过这种方式,我不需要每次都在模块中导入它.

python

6
推荐指数
1
解决办法
3345
查看次数

pipenv的用例是什么?

我正在读这个叫做的新工具pipenv,无法理解这个工具的用例。

  1. 要创建一个包,我仍然需要维护setup.pyrequirements.txt
  2. 要创建开发环境,我很可能仍然需要toxvirtualenv
  3. 创建包或轮子我仍然需要使用pip,因为pipenv开发人员并不关心此功能

那么,另一个具有不同语法的工具和配置文件又有什么意义呢?pipenv解决什么问题?

python pipenv

5
推荐指数
1
解决办法
477
查看次数

检查两个对象在 Pytest 中是否具有相同的内容

我正在学习如何使用 Pytest(以及一般的单元测试),我想编写一个测试来检查同一类的两个对象是否具有相同的属性。

例子:

class Something(object):
    def __init__(self, a, b):
        self.a, self.b = a, b

    def __repr__(self):
        return 'Something(a={}, b={})'.format(self.a, self.b)

def test_equality():
    obj1 = Something(1, 2)
    obj2 = Something(1, 2)
    assert obj1.a == obj2.a
    assert obj1 == obj2
Run Code Online (Sandbox Code Playgroud)

此测试失败并在第三个断言中出现 AssertionError:

    def test_equality():
        obj1 = Something(1, 2)
        obj2 = Something(1, 2)
        assert obj1.a == obj2.a
        assert obj1.b == obj2.b                                                                                                                                                                                                               
>       assert obj1 == obj2                                                                                                                                                                                                                   
E       assert Something(a=1, b=2) == Something(a=1, b=2)                                                                                                                                                                                     

tests/test_model.py:13: AssertionError
Run Code Online (Sandbox Code Playgroud)

在 Python 或 Pytest 中可以只使用assert obj1 == …

python pytest

4
推荐指数
1
解决办法
9518
查看次数

标签 统计

python ×3

pipenv ×1

pytest ×1