自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

調(diào)用Python腳本基本應(yīng)用方式簡(jiǎn)述

開發(fā) 后端
我們今天將會(huì)在這篇文章中為大家詳細(xì)介紹一下有關(guān)調(diào)用Python腳本的相關(guān)應(yīng)用方法,希望可以為又需要的朋友們帶來(lái)些幫助。

在編程人員需要選擇一種合適的計(jì)算機(jī)語(yǔ)言進(jìn)行程序開發(fā)時(shí),他們腦海中往往會(huì)出現(xiàn)Python這一語(yǔ)言。它靈活易用的特點(diǎn)大大的提高了開發(fā)人員的效率。在這里我們將會(huì)為大家詳細(xì)介紹一下調(diào)用Python腳本的相關(guān)方法。#t#

之前簡(jiǎn)單了解過(guò)Python語(yǔ)言,但沒(méi)有深入和系統(tǒng)的學(xué)習(xí)過(guò),只是一直覺(jué)得它足夠的靈活,而且不需要編譯(因?yàn)镻ython是解釋型語(yǔ)言),所以就一直想把它應(yīng)用到CodeMaker中,達(dá)到一種靈活的、自定義的配置。

1、首先去下載IronPython類庫(kù)(這里使用 IronPython-v2.6),我們借助IronPython類庫(kù),在.Net下運(yùn)行調(diào)用Python腳本。

2、將IronPython以及相關(guān)的類庫(kù)添加到項(xiàng)目引用里。

  1. IronPython.dll   
  2. IronPython.Modules.dll   
  3. Microsoft.Dynamic.dll   
  4. Microsoft.Scripting.Core.dll   
  5. Microsoft.Scripting.Debugging.dll   
  6. Microsoft.Scripting.dll   
  7. Microsoft.Scripting.ExtensionAttribute.dll  

3、只做了個(gè)小例子,不是很復(fù)雜,所以就直接貼調(diào)用Python腳本的代碼了。

 

  1. // 主方法  
  2. static void Main(string[] args)  
  3. {  
  4. // 創(chuàng)建腳本引擎  
  5. ScriptEngine engine = Python.CreateEngine();  
  6. // 創(chuàng)建一個(gè)腳本范圍容器  
  7. ScriptScope scope = engine.CreateScope();  
  8. // 設(shè)置變量  
  9. engine.SetVariable(scope, "UserName", "cnBlogs");  
  10. // 執(zhí)行Python腳本,并獲取返回值  
  11. ScriptScope resultScope = engine.ExecuteFile("test.py", scope);  
  12. // 輸出結(jié)果  
  13. Console.WriteLine(resultScope.GetVariable("Result"));  
  14. }  
  15. // Python腳本:  
  16. def GetType(name):  
  17. return "hello " + name;  
  18. Result = GetType(UserName); 

調(diào)用Python腳本內(nèi)容是很簡(jiǎn)單的,聲明一個(gè)函數(shù),參數(shù)為name,函數(shù)返回拼接name后的字符串,函數(shù)結(jié)束。然后調(diào)用該函數(shù),參數(shù)為UserName,返回值為Result。

腳本中,UserName與主方法中的

engine.SetVariable(scope, "UserName", "cnBlogs");相對(duì)應(yīng)。

Result與主方法中的

resultScope.GetVariable("Result")相對(duì)應(yīng),而無(wú)需再在腳本中聲明這兩個(gè)變量。

執(zhí)行結(jié)果:

 

可以看到,輸出的字符串是從Python腳本中返回的,就可以達(dá)到通過(guò)修改腳本實(shí)現(xiàn)執(zhí)行結(jié)果的變化。

4、調(diào)用Python腳本在CodeMaker中的應(yīng)用

使用方式:

我們以前也提到過(guò)已經(jīng)提過(guò)該代碼生成工具是采用標(biāo)簽的方式自定義模板,然后根據(jù)模板生成代碼文件。所以為相應(yīng)的Python腳本添加了一個(gè)script標(biāo)簽。

  1. < c:script path="test.py" variables="{userName:cnBlogs;password:123456}"
     result="Result" /> 

path:腳本文件路徑(相對(duì)于EXE文件的路徑)

variables:變量容器,原本打算使用類似于JSON格式的,但因?yàn)橐恍┨厥夥?hào)會(huì)影響標(biāo)簽的解析,所以稍微改了一下分隔符,多個(gè)變量和值之間用;(分號(hào))隔開。

result:腳本執(zhí)行結(jié)果的返回變量,用于在代碼中獲取腳本返回值。

用途:在生成實(shí)體類的時(shí)候,對(duì)于類型轉(zhuǎn)換,大部分可以直接使用Convert.ToXXX()這種形式,但對(duì)于Guid,卻只能用new Guid()這種形式。

借助腳本,就可以在腳本中判斷類型,如果是Guid的話,則返回new Guid();若是其他類型,則返回ConvertToXXX();

以上調(diào)用Python腳本的方法僅提供思路,若有興趣,可查看CodeMaker v1.5源代碼(這兩天整理后發(fā)布)。

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2010-03-03 16:40:55

Python HTTP

2010-02-04 17:16:33

C++調(diào)用python

2010-03-03 15:17:46

Python調(diào)用MyS

2010-03-03 14:30:05

Python set類

2010-03-03 14:40:37

Python打包方法

2010-03-03 10:03:55

Python連接Sql

2010-03-03 16:08:26

Python取得文件列

2010-02-02 14:45:35

C++ typeof

2013-12-12 16:10:21

Lua腳本語(yǔ)言

2010-03-03 13:22:08

Python正則表達(dá)式

2010-01-25 13:45:04

Android單選框

2010-02-02 17:33:17

C++友元函數(shù)

2010-03-04 14:57:08

Python解密VBS

2010-07-08 15:24:17

SNMP trap

2010-03-05 15:47:59

Python Stri

2010-03-04 15:52:59

Python構(gòu)造列表

2010-03-03 13:32:08

Python壓縮文件

2010-02-25 10:52:29

WCF響應(yīng)服務(wù)

2010-02-26 13:40:28

WCF消息頭

2010-02-25 18:04:02

WCF IIS宿主
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)