用ironpython驱动你的计算公式

         很多时候,很多应用都会使用到某些计算公式,而这些计算公式一段时间之后可能会调整。目前,一般处理的办法有硬编码、数据库表配置以及脚本。自ironpython发布之后,.net动态脚本的威力日增,以至于有DLR的诞生...
         以下是有关代码:(使用ironpython自带的示例文件first.py)          
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;

using  IronPython.Hosting;

namespace  IronPythonIntegrationDemo
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            Console.WriteLine(
"请输入阶乘数字");
            
long num = long.Parse(Console.ReadLine());
            PythonEngine engine 
= new PythonEngine();
            engine.Import(
"Site");
            CompiledCode cc 
= engine.CompileFile(@"D:\IronPython-1.1\Tutorial\first.py");
            cc.Execute();
            engine.Execute(
string.Format("total = factorial({0})", num));
            
long total = engine.EvaluateAs<long>("total");

            Console.WriteLine(total);
            Console.Read();
        }

    }

}

         这样,可以把动态脚本引擎集成进自己的程序里。当计算公式发生变化时,代码不需要修改,而只修改脚本即可。
         我觉得还是蛮好的,起码在程序的扩展性上。
         first.py文件内容如下:
# ####################################################################################
#
#
  Copyright (c) Microsoft Corporation. All rights reserved.
#
#
  This source code is subject to terms and conditions of the Shared Source License
#
  for IronPython. A copy of the license can be found in the License.html file
#
  at the root of this distribution. If you can not locate the Shared Source License
#
  for IronPython, please send an email to ironpy@microsoft.com.
#
  By using this source code in any fashion, you are agreeing to be bound by
#
  the terms of the Shared Source License for IronPython.
#
#
  You must not remove this notice, or any other, from this software.
#
#
#####################################################################################

def  add(a, b):
    
" add(a, b) -> returns a + b "
    
return  a  +  b

def  factorial(n):
    
" factorial(n) -> returns factorial of n "
    
if  n  <=   1 return   1
    
return  n  *  factorial(n - 1 )

hi 
=   " Hello from IronPython! "

转载于:https://www.cnblogs.com/ofei/archive/2007/08/18/861122.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘 要 伴随着人才教学的关注度越来越高,对于人才的培养也是当今社会发展的最为重要的问题之一。为了进一步的进行人才的培养关工作,许多的学校或者是教育的机构逐步的开展了网络信息化的教学和和管理工作,通过信息化的手段和技术实现网络信息化的教育及管理模式,通过网络信息化的手段实现在线答题在线考试和学生信息在线的管理等操作。这样更加的快捷解决了人才培养之中的问题,也在进一步的促进了网络信息化教学方式的快速的发展工作。相较于之前的人才教育和培养工作之中,存在这许多的问题和局限性。在学生信息管理方面通过线下管理的形式进行学生信息的管理工作,在此过程之中存在着一定的局限性和低效性,往往一些突发的问题导致其中工作出现错误。导致相关的教育工作受到了一定的阻碍。在学生信息和学生成绩的管理方面,往常的教育模式之下都是采用的是人工线下的进行管理和整理工作,在这一过程之中存在这一定的不安全和低效性,面对与学生基数的越来越大,学生的信息管理也在面领着巨大的挑战,管理人员面领着巨大的学生信息的信息量,运用之前的信息管理方式往往会在统计和登记上出现错误的情况的产生,为后续的管理工作造成了一定的困难。然而通过信息化的管理方式进行对学生信息的管理不仅可以避免这些错误情况的产生还可以进一步的简化学生信息管理工作的流程,节约了大量的人力和物力的之处。在线答题系统的实现不仅给学生的信息管理工作和在线考试带来了方便也进一步的促进了教育事业信息化的发展,从而实现高效化的教学工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值