草庐IT

result_dict

全部标签

python - 如何修改类 __dict__ (一个映射代理)?

这个问题在这里已经有了答案:Howtoassignanewclassattributevia__dict__?(1个回答)关闭8年前。我想为类中的每个方法应用装饰器。我没有类的源代码,所以不能直接应用装饰器。我想调用一些接受类并添加装饰器的函数。但问题是testclass.__dict__是一个mappingproxy对象,它不支持任何赋值或修改,至少不支持直接赋值或修改。那么问题是如何避免该限制并应用装饰器?这是失败尝试的代码:classqwer:deftest(self):print('test')defdecor(func):defw(*args,**named_args):pr

python - 为什么使用 packed *args/**kwargs 而不是传递 list/dict?

如果我不知道函数将传递多少个参数,我可以使用参数打包来编写函数:defadd(factor,*nums):"""Addnumbersandmultiplybyfactor."""returnsum(nums)*factor或者,我可以通过传递一个数字列表作为参数来避免参数打包:defadd(factor,nums):"""Addnumbersandmultiplybyfactor.:typefactor:int:typenums:listofint"""returnsum(nums)*factor使用参数打包*args比传递数字列表有优势吗?还是有更合适的情况?

Python Key Error=0 - 在代码中找不到 Dict 错误

基本上,我已经绞尽脑汁思考了为什么我的代码无法正常工作,我已经分别测试了各个部分,并查看了整个网络以查看是否有帮助,但无济于事。我收到一个错误,回溯是:Traceback(mostrecentcalllast):File"yes2.py",line62,ing.add_edge(row_index,col_index,b)File"yes2.py",line27,inadd_edgeself.adj[u].append(edge)KeyError:0错误的两部分是defadd_edge(self,u,v,w=0):ifu==v:raiseValueError("u==v")edge=E

python - 类定义中 self.__dict__ = self 的含义

我正在尝试理解以下代码片段:classConfig(dict):def__init__(self):self.__dict__=selfself.__dict__=self这行的目的是什么?我想它用简单地返回对象本身的东西覆盖了默认的__dict__函数,但是由于Config继承自dict我一直无法找出与默认行为的任何差异。 最佳答案 将字典self分配给__dict__允许属性访问和项目访问:>>>c=Config()>>>c.abc=4>>>c['abc']4 关于python-类定

python - 可见弃用警告 : using a non-integer number instead of an integer will result in an error in the future

当运行涉及以下函数的python程序时,image[x,y]=0给出以下错误消息。这是什么意思,如何解决?谢谢。警告VisibleDeprecationWarning:usinganon-integernumberinsteadofanintegerwillresultinanerrorinthefutureimage[x,y]=0Illegalinstruction(coredumped)代码defcreate_image_and_label(nx,ny):x=np.floor(np.random.rand(1)[0]*nx)y=np.floor(np.random.rand(1)[

python - 有没有办法访问包含基类的 __dict__ (或类似的东西)?

假设我们有以下类层次结构:classClassA:@propertydeffoo(self):return"hello"classClassB(ClassA):@propertydefbar(self):return"world"如果我像这样在ClassB上探索__dict__,我只会看到bar属性:forname,_inClassB.__dict__.items():ifname.startswith("__"):continueprint(name)输出是条我可以使用自己的方法来获取指定类型及其祖先的属性。但是,我的问题是python中是否已经有一种方法可以让我在不重新发明轮子的情

python - Openpyxl 1.8.5 : Reading the result of a formula typed in a cell using openpyxl

我正在其中一个Excel工作表中打印一些公式:wsOld.cell(row=1,column=1).value="=B3=B4"但我不能使用它的结果来实现其他一些逻辑,如:if((wsOld.cell(row=1,column=1).value)='true'):#copythe1strowtoanothersheet即使我试图在命令行中打印结果,我最终还是打印了公式:>>>print(wsOld.cell(row=1,column=1))>>>=B3=B4如何在单元格中获取公式的结果而不是公式本身? 最佳答案 openpyxl支持

python - Python 缺少 frozen-dict 类型的解决方法?

这个问题在这里已经有了答案:ImmutabledictionaryinPython3:howtomakekeys(),items(),andvalues()dictionaryviewsimmutable(2个答案)Whatwoulda"frozendict"be?(14个答案)关闭6年前。在Python中,当你想使用列表作为某些字典的键时,你可以将它们变成元组,元组是不可变的,因此是可散列的。>>>a={}>>>a[tuple(list_1)]=some_value>>>a[tuple(list_2)]=some_other_value当您想使用set对象作为某些字典的键时,也会发生

python - 仅查找几个字典的公共(public)键值对 : dict intersection

我在列表中有0个或多个dict:>>>dicts=[dict(a=3,b=89,d=2),dict(a=3,b=89,c=99),dict(a=3,b=42,c=33)]我想创建一个新字典,它只包含所有上述字典中的键,并且只有当值都相同时:>>>dict_intersection(*dicts){"a":3}我觉得应该有一种优雅的方式来编写dict_intersection,但我自己只是提出了不优雅和/或低效的解决方案。 最佳答案 >>>dict(set.intersection(*(set(d.iteritems())fordin

python - 溢出错误 : (34, 'Result too large' )

我遇到溢出错误(OverflowError:(34,'Resulttoolarge')我想计算pi到100位小数,这是我的代码:defpi():pi=0forkinrange(350):pi+=(4./(8.*k+1.)-2./(8.*k+4.)-1./(8.*k+5.)-1./(8.*k+6.))/16.**kreturnpiprint(pi()) 最佳答案 Pythonfloat既不是任意精度也不是无限大小。当k=349时,16.**k太大了-几乎是2^1400。幸运的是,decimal库允许任意精度并且可以处理大小:impor