互联网解决方案咨询

梦想有多大路就会有多远:作一颗IT量子
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

IronPython入门学习

Posted on 2008-05-03 20:09  互联网粒子  阅读(472)  评论(0编辑  收藏  举报
为了眼界,利用空余时间来多学习了一种语言,挑了Python,Phtyon早就听说可以在dot net框架下跑了,于是摆度下了相关的资料,跟着前辈们来画代码,我一直在用asp.net来做我的工作,所以我摆度了下是否支持asp.net,果真还真支持,但需要下载一个安装包
icrosoft IronPython for ASP.NET CTP
http://www.microsoft.com/downloads/details.aspx?FamilyId=55932211-0D7E-4C6E-9B18-8F9D2AC1EE43&displaylang=en
安装完后,可以直接用vs.net来创建IronPython的web site,我用的是vs2005 IDE,直接新建一个web site,但在选语言时必须选择IronPython后,可以看到它的page与cs代码的结构基本上与asp.net c#类似,
<%@ Page Language="IronPython" CodeFile="Default.aspx.py" %>,后缀名为py了
不过里面就没有智能提示了,感觉好像回到了asp时间,它的后台的代码(类.cs文件)是放在App_Script的目录中,可以直接在这里加IronPython的py文件。
选中App_Script文件夹后,添加一个新项,选择IronPython Moudle后,加一个py文件,名为SampleModule.py,内容如下:
class SampleClass:
    "Sample class with one property"
    _testString = "" "私有成员"
"定义一个函数用来给这个私有成员值,和c#的类属性一样"
    def SetTestString(value):
        _testString = value
    def GetTestString():
        return _testString
"property很重要,它来描术这里面的二个方法是一个属性给外面的实例来访问"
    TestString = property(GetTestString, SetTestString)
回到Default.aspx的页面,在HTML中加入
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> &nbsp;

    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br /><br />

    <h3><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></h3>
Button1_Click这是一个方法名,我们需要在py文件里定义
首先要引用这个Ironpython
”SampleModule是刚才建立的.py文件名“
import SampleModule
from SampleModule import SampleClass
"定义下面的函数名,给aspx上的button访问,sender, args不必先定义类型,它是动态语言,运行时再编译器会知道它的数据类型"
def Button1_Click(sender, args):

"直接声明一个类对象"
    sc = SampleClass()

    sc.TestString = TextBox1.Text

    Label1.Text = sc.TestString
以上代码在vs.net2005下通过,从这个例子可以体会到什么是动态语言,可能要一优时间来习惯它的表达方式,看上去调用很简单。