很多时候,很多应用都会使用到某些计算公式,而这些计算公式一段时间之后可能会调整。目前,一般处理的办法有硬编码、数据库表配置以及脚本。自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

用ironpython驱动你的计算公式相关推荐

  1. matlab IGBT设置占空比,IGBT的驱动参数说明和计算公式

    IGBT的驱动参数说明和计算公式 作者:微叶科技 时间:2015-11-19 10:58 IGBT驱动概述 本文介绍了在特定应用条件下门极驱动性能参数的计算方法.通过本应用手册得出的一些参数值可以作为 ...

  2. A40i使用笔记:文件IO驱动方式(慢)(无法应用于大部分ic)

    一.前言 初学linux,从hellow word开始,但是我这现在连初学都算不上,还没到学习hellow word驱动那一步,目前就是利用文件io驱动最最最最简单基础的led或者最最最简单的不要求时 ...

  3. 第十五届智能车竞赛技术报告-成电金秋-AI电磁

    01引言 1.1 大赛介绍 全国大学生"恩智浦"杯智能汽车竞赛是以"立足培养.重在参与.鼓励 探索.追求卓越"为宗旨,鼓励创新的一项科技竞赛活动.今年首次新增了 ...

  4. C语言串口通信R8T8,K60-串口通信

    目录 0x00 前言 0x01 串行通信原理 1.1 简单介绍 1.2 原理部分 1.2.1异步串行通信的数据格式 1.2.2 如何发送 (0/1) ? -- TTL电平 1.2.3 开始位/停止位/ ...

  5. Win64 驱动内核编程-26.强制结束进程

    强制结束进程 依然已经走到驱动这一层了,那么通常结束掉一个进程不是什么难的事情.同时因为win64 位的各种保护,导致大家慢慢的已经不敢HOOK了,当然这指的是产品.作为学习和破解的话当然可以尝试各种 ...

  6. Win64 驱动内核编程-23.Ring0 InLineHook 和UnHook

    Ring0 InLineHook 和UnHook 如果是要在R0里hook,作者的建议是InLine HOOK,毕竟SSDT HOOK 和 SHADOW SSDT HOOK比较麻烦,不好修改.目前R3 ...

  7. Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)

    SHADOW SSDT HOOK HOOK 和 UNHOOK SHADOW SSDT 跟之前的 HOOK/UNHOOK SSDT 类似,区别是查找SSSDT的特征码,以及根据索引计算函数地址的公式,还 ...

  8. Win64 驱动内核编程-20.UnHook SSDT

    UNHOOK SSDT 要恢复 SSDT,首先要获得 SSDT 各个函数的原始地址,而 SSDT 各个函数的原始地址,自然是存储在内核文件里的.于是,有了以下思路: 1.获得内核里 KiService ...

  9. TQ2440平台上LCD驱动的移植

    参考: http://liu1227787871.blog.163.com/blog/static/205363197201242393031250/ http://blog.csdn.net/cum ...

最新文章

  1. debian java 安装路径_Debian安装JAVA环境(转载)
  2. Linux的top命令
  3. MarshalByRefObject 的DOME代码
  4. html点击计数器的实现,点击计数器_Servlet 教程_w3cschool
  5. div关闭怎么写 html,大神你好,请问怎么在以下代码的div中添加一个关闭按钮?...
  6. python访问文件被拒绝_python – uWSGI服务器日志…权限被拒绝读取文件…哪个文件?...
  7. 神奇DP [HNOI2004] 打砖块
  8. Sql server备份数据库不执行
  9. 虚拟机下安装BackTrack5 (BT5)教程及BT5汉化
  10. docker批量导出导入本地镜像
  11. 面试计算机有什么优势和不足,面试时如何介绍自己的优缺点
  12. Qt之如何识别小键盘(数字键盘)
  13. C#基础 连接数据库
  14. c 实现走迷宫流程图_C语言实现一个走迷宫小游戏(深度优先算法)
  15. 无盘服务器快慢取决于什么,cpu运行速度的快慢取决于什么
  16. Focal-UNet
  17. 做自媒体,学视频剪辑须知的四大宝藏网站
  18. 重装系统——Win10/win11
  19. OpenX系列标准介绍(5):OpenDRIVE和OpenSCENARIO的中文版本
  20. “人到中年”成网红,旺旺能否借此重返“旺季”?

热门文章

  1. 奔四的技术人,内心都有哪些波澜?
  2. DX使用随记--GroupControl
  3. 【leetcode 968. 监控二叉树】解题报告
  4. android measure的时候报空指针
  5. IPC之哲学家进餐问题
  6. 【原创】字符串工具类--找出单元字符串
  7. 一个发送短信验证码 然后倒计时实例
  8. ADO.NET常用对象
  9. 浅谈自然语言在科技时代的运用
  10. Spring中获取Session的方法汇总