因此,我理解了<代码>exec和_eval
以及<代码>compile。 但为什么我需要使用这些工具? 我不清楚使用情况。
任何人都能够给我一些例子,以便我能够更好地理解这一概念。 我知道,这是所有理论。
因此,我理解了<代码>exec和_eval
以及<代码>compile。 但为什么我需要使用这些工具? 我不清楚使用情况。
任何人都能够给我一些例子,以便我能够更好地理解这一概念。 我知道,这是所有理论。
我举了一个例子,其中我使用了<代码>eval,我认为这是最佳选择。
我撰写了简单的软件测试效用......用于测试学生练习是否符合分配要求。 目标是提供一个简单的配置文件,作为测试规格(围绕使用方案拟订语言描述/记录/简化基本方案拟订任务的测试案例的“鸡蛋”问题)。
I based my harness on the ConfigParser in the standard libraries. However, I did want the ability to represent arbitrary Python strings (including interpolations of , , and especially any interpolated hex encoded ASCII characters in the values read therefrom.
我的解决办法是try
around an parsed_string=eval( %cfg_read_item)
subsequently by a try
of the three Double-quoted edition (""%s”””” of the same.
一种情况是,替代语言是书写(或找到先成文)的陈词典,说明如何纳入和适应我的节目。 风险最小(如果不担心学生提交的代码会渗入我的教区,如果其监狱、删除我的所有档案、将我的信用卡号码寄给罗马尼亚等等)*
* (部分是因为我正在从一个没有信任的无主用户账户中测试这些用户。)
正如其他人在这里所说的那样,还有一些使用案例,即你根据投入数据从模板中重新制定代码,并且需要执行该守则(梅塔方案编制)。 你们总是能够以另一种方式完成这些任务。 然而,只要这一替代方法需要齐头并进,便可采用一种更好的办法,即采用一种通用的方案拟订语言。
ast
uses compile
to generate abstract syntax trees from Python source code. These are used by modules such as pyflakes
to parse and validate Python.
def parse(expr, filename= <unknown> , mode= exec ):
"""
Parse an expression into an AST node.
Equivalent to compile(expr, filename, mode, PyCF_ONLY_AST).
"""
return compile(expr, filename, mode, PyCF_ONLY_AST)
您don t need to use them,我认为你应避免。
只有在你自己制定守则的情况下,这些守则才有用,而最终很可能被认为是不好的做法。
如果你考虑使用电子数据,如数学表述,那么在评价之前,你将更好地使投入制度化。 你们永远不知道用户寄出哪一种文字可能会改变申请本身。
I think I have a valid use. I am using Python 3.2.1 inside Blender 2.6.4 to modify a set of points with x,y coordinates (in the z-plane).
目标是在每一现有点周围增加新点的集中点,使环形成为pple(如你在池塘投掷石块)。 渔获量是,我想要pple子以建设性/建设性的方式相互干预,因此,一把Im穿过并构筑了每一点的复式方程式,把所有复式方程式合为一个巨大的数学方程式,然后我将把原来的各点输入,以便产生正确的z-数值,相互分配。
我的计划是将每一术语与前一个术语相加,然后使用电子等值计算新的一组点的兹值。
你们只是举一个例子吗? 您可以撰写一份简单明了的文字,从标准中读出,并允许用户输入各种表述,如<代码>(442)/8 - 1。 在其他语文(贾瓦语、C++等)中,评估几乎是不可能的,但就语而言,简单明了:
eval((4*2)/8 - 1)
尽管如此,除非你小心,否则,使用这些东西可能会有危险,因为(基本上)使用户无法获得大量的准入。
这笔费用用于(在节目撰写时)。 例如,你有不同物种的动物,这些动物被描述为不同的类别:狮子、猛虎组织、马 Horse、唐伊。 你们想要模拟他们之间的交叉繁殖,为狮子和猛虎组织之间的考试。 当你撰写节目时,你不能确定用户如何跨越动物,但你可以制作新的动物体:
new_class_name = boy.class.to_str() + girl.class.to_str()
eval("class " + new_class_name + " extends " + boy.class.to_str() + ", " + girl.class.to_str())
P. S. Sorry, I forgotshed some. 因此,有一套假编码。
这里有一个有效的使用案例。 在(网络节目制作)上,当出现例外情形时,在浏览器内建立了指挥线。 这项工作正在使用类似方法。 此外,在Blender,还有一种选择,即使用假装表示和采用电子计算法进行计算。
Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...
I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...
Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...
Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...
I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...
Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...
Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...
I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...