草庐IT

Instance_eval

全部标签

python - 属性错误 : StringIO instance has no attribute 'fileno'

defcaptureOutput(self,func,*args,**kwargs):passsys.stdout.flush()sys.stderr.flush()(outfd,fn)=tempfile.mkstemp()fout=os.fdopen(outfd,'r')os.unlink(fn)(errfd,fn)=tempfile.mkstemp()ferr=os.fdopen(errfd,'r')os.unlink(fn)try:oldstdout=os.dup(sys.stdout.fileno())oldstderr=os.dup(sys.stderr.fileno())o

python - ValueError : malformed string when using ast. literal_eval

众所周知,使用eval()存在潜在的安全风险,因此使用ast.literal_eval(node_or_string)升职了但是在python2.7中,它在运行这个例子时返回ValueError:malformedstring:>>>ast.literal_eval("4+9")而在python3.3中,此示例按预期工作:>>>ast.literal_eval('4+9')13为什么它在python3而不是python2上运行?如何在不使用有风险的eval()函数的情况下在python2.7中修复它? 最佳答案 这在Python2上

Python 元素树 : Parsing a string and getting ElementTree instance

我有一个包含从http请求返回的XML数据的字符串。我正在使用ElementTree解析数据,然后我想递归搜索一个元素。根据thisquestion,如果result的类型是ElementTree而不是Element类型,我只能使用result.findall()递归搜索.现在xml.etree.ElementTree.fromstring(),用于解析字符串,返回一个Element对象,而xml.etree.ElementTree.parse(),用于解析一个文件,返回一个ElementTree对象。那么我的问题是:如何解析字符串并获取ElementTree实例?(没有像写入临时文件

python - 通过 Python 的 eval() 运行 JSON?

除了最佳实践,是否有令人信服的理由不这样做?我正在编写一个用于Google代码项目的提交后Hook,该项目通过JSON对象提供提交数据。GC会随请求提供HMAC身份验证token(在JSON数据之外),因此通过验证该token,我可以高度确信JSON数据既是良性的(因为不信任Google没有什么意义)并且是有效的。我自己的(简要)调查表明,JSON恰好是完全有效的Python,除了"\/"转义序列—GC似乎不会生成它。所以,当我使用Python2.4(即没有json模块)时,eval()看起来真的很诱人。编辑:郑重声明,我非常不询问这是否是个好主意。我非常知道它不是,我非常怀疑我是否会

python - 为什么 python 的 eval 有长度限制?

我并不主张这将是一个好主意,但我发现您可以通过在足够大的输入字符串上运行eval来使Python崩溃(检查2.7和3.2):defkill_python(N):S='+'.join((str(n)forninxrange(N)))returneval(S)在我的计算机上S可以很好地生成,但是对于大约N>74900的值,Python将失败并出现Segmentationfault(coredumped)。解释器可以处理的字符串(或解析树)的长度是否有限制?注意:我不需要这样做,对我来说这是一个更深层次的问题,反射(reflect)出我对盒子里发生的事情一无所知。我想了解为什么Python在

python : Assert that variable is instance method?

如何检查变量是否为实例方法?我正在使用python2.5。类似这样的:classTest:defmethod(self):passassertis_instance_method(Test().method) 最佳答案 inspect.ismethod如果您确实有方法,而不仅仅是您可以调用的东西,是您想知道的。importinspectdeffoo():passclassTest(object):defmethod(self):passprintinspect.ismethod(foo)#Falseprintinspect.isme

Python 3,ast.literal_eval(node_or_string) 中是否有任何已知的安全漏洞?

ast.literal_eval(node_or_string)有什么已知的方法吗?的评估实际上并不安全?如果是,是否有可用的补丁?(我已经知道PyPy[sandbox],它可能更安全,但除非答案是肯定的,否则我的需求很小,我不会走那么远。) 最佳答案 documentation声明它是安全的,并且在bugtracker中没有与literal_eval的安全性相关的错误。,所以你可以假设它是安全的。另外,accordingtothesource,literal_eval将字符串解析为pythonAST(源树),并且仅当它是文字时才返

Python:使 eval 安全

这个问题在这里已经有了答案:Pythoneval:isitstilldangerousifIdisablebuiltinsandattributeaccess?(6个回答)关闭6年前。我想要一种在Python中创建“计算器API”的简单方法。现在我不太关心计算器将支持的确切功能集。我希望它接收一个字符串,比如"1+1"并返回一个带有结果的字符串,在我们的例子中是"2"。有没有办法让eval对这样的事情安全?一开始我会这样做env={}env["locals"]=Noneenv["globals"]=Noneenv["__name__"]=Noneenv["__file__"]=None

python - 避免 Pylint 警告 E1101 : 'Instance of .. has no .. member' for class with dynamic attributes

想象一个函数,它动态地使用setattr向对象添加属性。这样做的原因是我想将一些外部结构(例如给定的参数树)映射到一个对象:my_object=SomeClass()apply_structure(my_object,some_descriptor)my_object.device1.enabled=True从技术上讲,这是可行的,但Pylint当然正确地提示'device1'不是SomeClass的成员。我可以禁用警告,但这会很糟糕(因为在所有情况下,当属性由于拼写错误等原因不存在时,我仍然希望得到警告)。是否有一种常见且合法的(Pylint-proof)方法可以动态地将成员添加到不

python - 如何处理 Pylint 的 "too-many-instance-attributes"消息?

我刚刚尝试用Pylint对一些代码进行lint,最后剩下的错误是R0902:too-many-instance-attributes(8/7)我理解限制实例属性数量背后的基本原理,但七个似乎有点少。我也意识到linter不应该有最后的发言权。但是,我想知道我应该做什么而不是:def__init__(self,output_file=None,output_dir=None):"""Setthefrobnicatorup,alongwithdefaultgeometries"""self.margin=30self.pos=[0,0]self.sep=[5,5]self.cell=[20