打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IronPython(转)

【IT168知识库】
 IronPython(铁蟒)是.NET平台上的Python的CodeName,该语言尚处在Alpha预览版(pre-alpha preview release)阶段。它拥有一个完全动态的交互式解释器,可以支持所有的.NET类型库,并且集成了.NET Framework的诸多优点,甚至可以用Python的类来扩展.NET类。IronPython遵从ECMA的CLI标准(ECMA-335),可以运行在Microsoft .NET FrameworkMONO上。

    IronPython比传统的Python快1.8倍左右(相对于Python 2.4),并且和传统的Python一样是完全动态的;但相对于传统的Python,IronPython却支持可选的静态编译功能,静态编译过的IronPython程序就形成了常规的.NET可执行文件(.EXE文件)。甚至还可以将IronPython程序静态编译为.NET动态链接库(.dll文件)并且供C#和VB.NET等.NET语言调用。由于IronPython程序集中仅包含与系统库无关的托管代码,因此IronPython程序集是完全可验证的。

    不过,目前的IronPython还未完工,很多支持库还有待完成和完善,而且它需要.NET Framework 2.0的支持。对IronPython的源代码进行编译,也需要Visual Studio 2005的支持(IronPython提供的是msbuild构建文件);在这一点上,如果IronPython能够提供NAnt脚本等开源构建支持的话,相信还能引起更多朋友的关注。

作为一门非常流行的动态语言,Python在解决某类问题时显得异常的方便。IronPython则是Python在.NET Framework上的实现,虽初出茅庐,但已经显示出了他的强大力量。本文不是介绍IronPython的使用方法,而是介绍如何在C#这个.NET最流行的语言中使用IronPython的动态特性,来处理“动态”的表达式。所谓“动态”的表达式,是指类似“a + b - c”这类的以字符串形式提供的运算表达式。

using System;
using System.Collections.Generic;
using System.Text;
using IronPython.Hosting;

namespace PythonDemo
{
  
class Program
  {
    
delegate int MyExpressionDelegate(int a, int b);
    
static void Main(string[] args)
    {
      PythonEngine pe 
= new PythonEngine();
      MyExpressionDelegate expression 
= 
        pe.CreateLambda
<MyExpressionDelegate>("a + b");
      
int a = 10;
      
int b = 5;
      
int c = expression(a, b);
      Console.WriteLine(c);
    }
  }
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
本周ASP.NET英文技术文章推荐[10/28 – 11/3]
IronPython与.NET Framework——Dynamo Python系列教程(七)
LINQ与DLR的Expression tree(2):简介DLR (转 rednaxelafx.javaeye.com)
动态语言运行时概述
Python解释器
VB.NET和Python学习哪个好?入门分享!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服