草庐IT

test_dict

全部标签

python - Py.Test 与配置文件

标题可能含糊不清,所以我试着在这里解释一下这个场景。我想在多个设备上测试python模块Foo。我已经创建了一个test_Foo.py文件。现在所有这些带有Foo的设备都需要不同的设置。例如,设备A需要使用参数X构建和测试Foo,而设备B需要使用参数Y构建和测试Foo。其中参数例如是设备ID。是否可以(以及如何)控制我的test_Foo.py使用配置文件。我使用YAML文件作为其他模块argparse.ArgumentParser的配置,但我想知道我可以在Py.Test中使用相同的概念。 最佳答案 您是否可以控制将用于在每个环境中调

python - 什么是 func_dict?

如果我在python中创建一个简单的函数,它同时具有__dict__和func_dict作为属性,它们都以空字典开始:>>>deffoo():...return42...>>>foo.__dict__{}>>>foo.func_dict{}如果我向foo添加一个属性,它会同时显示在以下两个中:>>>foo.x=7>>>foo.__dict__{'x':7}>>>foo.func_dict{'x':7}这些属性有什么区别?是否有一个特定的用例? 最佳答案 它们是同一个底层字典的别名。您应该使用__dict__,因为func_dict在

python - 为什么Python2.7 dict使用的空间比Python3 dict多?

我读过RaymondHettinger'snewmethod实现compactdicts.这解释了为什么Python3.6中的字典比Python2.7-3.5中的字典使用更少的内存。然而,Python2.7和3.3-3.5字典中使用的内存似乎有所不同。测试代码:importsysd={i:iforiinrange(n)}print(sys.getsizeof(d))Python2.7:12568Python3.5:6240Python3.6:4704如前所述,我了解3.5和3.6之间的节省,但对2.7和3.5之间节省的原因感到好奇。 最佳答案

python - Python 中的属性访问 : first slots, 然后 __dict__?

在下面的示例中,即使x存在于__dict__中(这不是一个典型的或可能有用的案例,但我很好奇):>>>classC(object):...__slots__='x'...>>>classD(C):...pass...>>>obj=D()>>>obj.x='Storedinslots'>>>obj.__dict__{}>>>obj.__dict__['x']='storedin__dict__'>>>obj.x'Storedinslots'这种访问顺序(插槽优先)是否已记录在案?或者只是一个实现细节? 最佳答案 是的,对象的__dic

python - py.test : hide stacktrace lines from unittest module

py.test堆栈跟踪目前看起来像这样:Traceback(mostrecentcalllast):File"/home/foo_tbz_di476/src/djangotools/djangotools/tests/ReadonlyModelTestCommon.py",line788,intest_stale_or_missing_content_typesself.assertEqual([],errors,'Stale/MissingContentTypes:%s'%'\n'.join(errors))File"/usr/lib64/python2.7/unittest/cas

python - 使用 dict 进行单元测试 __repr__ 的正确方法

假设我有一个类:classMyClass:def__init__(self,**kwargs):self.kwargs=kwargsdef__repr__(self):return""%(self.__class__.__name__,self.kwargs)__repr__对于核心功能来说并不是很重要,但偶尔会被调用进行日志记录,出现在堆栈跟踪中等等,所以我想对其进行单元测试。问题类似于thatfacedwhenusingdoctest,但我宁愿在测试函数中保留任何复杂性(如排序),而不是在__repr__中。现在我正在使用eval和re从repr()调用中提取字典,但我想检查是否人

python - 使用 from_dict 在 pandas 中添加而不是附加 NaN

我有一个从Python中的defaultdict中读取的pandas数据框,但有些列的长度不同。数据可能如下所示:Datecol1col2col3col4col501-01-155121-151001-02-1570911701-03-156121801-04-15981001-05-15-4701-06-15-11-101-07-156我可以像这样用NaN填充空白:pd.DataFrame.from_dict(pred_dict,orient='index').T给出:Datecol1col2col3col4col501-01-155121-151001-02-1570911701-

python - 从命令行为 py.test 指定 fixture 参数

我想将命令行参数传递给py.test以创建fixture。例如,我想将数据库主机名传递给下面的fixture​​创建,因此它不会被硬编码:importpytestdefpytest_addoption(parser):parser.addoption("--hostname",action="store",default='127.0.0.1',help="specifyIPoftesthost")@pytest.fixture(scope='module')defdb(request):return'CONNECTEDTO['+request.config.getoption('--

python - dict.viewkeys() 返回的数据类型是什么? [ python 2.7 ]

今天在研究dict.viewkeys(),发现我的python调用了dict_keys对象。我可以将它作为可迭代对象来处理,但它不是生成器,因为我可以不止一次地对其进行迭代。以我有限的知识,我只知道几种数据类型,例如String、int、float、list、dict、tuple、set。但是昨天我了解到enumerate()返回一对特殊的数据,只能被dict()使用一次,因此它是一个特殊的元组生成器(index_of_iteration,item)值这个dict_keys对象是python中另一个“我不知道它到底是什么,但我知道如何使用它”类型的对象,还是其他什么?

python - 如何在 Python 中对 dict 中的列表进行排序?

我正在尝试按字母顺序对dict中的列表进行排序,但无法做到。我的list是{"B":["x","z","k"],"A":["a","c","b"]}我想做的是,{"A":["k","x","z"],"B":["a","b","c"]}我的代码是a={"B":["x","z","k"],"A":["a","c","b"]}b=dict()forkey,valueina.items():b[str(key).replace('"','')]=valueab=OrderedDict(sorted(b.items(),key=lambdat:t[0]))forxinab:ab[x].sortr