python与C#的互相调用
python与C#的互相调用
一、C#调用python
新建一个项目,添加引用:IronPython.dll,Microsoft.Scripting.dll(在IronPython的安装目录中)。
创建一个文本文件命名为hello.py,把该文件添加的当前的项目中,并设置为总是输出。
#hello.py
def welcome(name):
return "hello" + name
调用hello.py文件中的方法:
static void main(string[] args)
{
ScriptRuntime pyRunTime=Python.CreateRuntime();
dynamic obj=pyRunTime.UseFile("hello.py");
Console.Write(obj.welcome("Nick"));
Console.ReadKey();
}
二、Python调用C#
示例一:调用dll中的方法
1.先准备一个C#写的dll,名称为IronPython_TestDll.dll
using System;
using System.Collections.Generic;
using System.Text;
namespace IronPython_TestDll
{
public class TestDll
{
public static int Add(int x, int y)
{
return x + y;
}
}
public class TestDll1
{
private int aaa = 11;
public int AAA
{
get { return aaa; }
set { aaa = value; }
}
public void ShowAAA()
{
global::System.Windows.Forms.MessageBox.Show(aaa.ToString());
}
}
}
2.调用C#的dll中的方法
import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *
clr.AddReferenceToFile("IronPython_TestDll.dll")
from IronPython_TestDll import *
a=12
b=6
#静态方法可以直接调用
c=TestDll.Add(a,b)
MessageBox.Show(c.ToString())
#普通方法需要先定义类
td=TestDll1()
td.AAA=100
td.ShowAAA()
示例二:动态执行python代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using IronPython.Hosting;
namespace TestIronPython
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
PythonEngine scriptEngine = new PythonEngine();
//设定dll文件所在的目录
scriptEngine.AddToPath(Application.StartupPath);
//textBox1.Text中写的是python代码,但调用的是dll中的方法
scriptEngine.Execute(textBox1.Text);
}
}
}
//textBox1.Text中写的是如下代码,会计算弹出100的提示框。
a=12
b=6
c=TestDll.Add(a,b)
MessageBox.Show(c.ToString())
td=TestDll1()
td.AAA=100
td.ShowAAA()
python与C#的互相调用相关推荐
- Python实例浅谈之三Python与C/C++相互调用
参考:http://blog.csdn.net/taiyang1987912/article/details/44779719 Python实例浅谈之三Python与C/C++相互调用 二.Pytho ...
- python为什么closed_为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed])...
为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed]) 我遇到了两次调用的python类函数的问 ...
- python 方法的实例_python调用自定义函数的实例操作
在python中,想要调用自定义函数必须先声明,然后才能调用.使用函数时,只要按照函数定义的形式,向函数传递必需的参数,就可以调用函数完成相应的功能或者获得函数返回的处理结果. (1)声明函数 pyt ...
- Python快速使用jira模块调用Jira接口
Python快速使用jira模块调用Jira接口 JIRA介绍: JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作 ...
- python嵌套类(内部类相互调用)_核心解密Python函数在(类与函数之间)和(类与类之间)互相调用...
image.png 一.类与函数之间 首先来看一个函数间的调用 类方法: #实现类中函数之间互相调用 #下面一个学生的简单自我介绍为例子 __metaclass__=type #自由的.动态的修改/增 ...
- python函数定义及调用-python函数的定义和调用 | 酷python
python函数的定义与调用 在python中 ,函数是一个组织好的 ,可以重复使用的代码段 ,函数可以提高代码的重复利用率 ,原则上一个函数只实现一个单一的功能 ,这样能增强程序的模块性, pyth ...
- c调用python函数_python - Linux C调用Python 函数
1.Python脚本,名称为py_add.py def add(a=,b=): print('Function of python called!') print('a = ',a) print('b ...
- python文件之间的相互调用_「Python 系列」 Python 生成器函数详解
Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...
- python名片识别_基于Python的名片识别接口调用代码实例
基于Python的名片识别接口调用代码实例 代码描述:基于Python的名片识别接口调用代码实例 #!/usr/bin/python # -*- coding: utf-8 -*- import js ...
最新文章
- SCI论文写作视频1.论文的三段式结构
- 解决yarn报错:Found incompatible module (yarn config set ignore-engines true)
- POJ3130(还是判断多边形的内核是否存在)
- 使用关键字创建具有局部作用域的JavaScript变量
- eplise怎么连接数据库_Eclipse连接MySQL数据库(傻瓜篇)
- 通用大数据架构为什么不适合处理物联网数据?
- ir指令、立即数的作用_我们一起学RISC-V——08-RV32I 指令应用实战
- android 无限循环 简书,Android Handler 解决循环引用
- 搭建顶级域名下的个人博客网站
- mysql for windows 64_MySQL 5.6 for Windows 解压缩版配置安装(win 10 64位亲测)附安装包下载链接...
- 《神经网络和深度学习》系列文章七:实现我们的神经网络来分类数字(下)...
- 阶段3 1.Mybatis_07.Mybatis的连接池及事务_2 连接池介绍
- php操作mysql工具类_PHP操作数据库的工具类
- linux i3 桌面,Linux 桌面平铺管理器 - i3wm
- mqtt+ActiveMQ用发布订阅实现点对点推送
- 风尚云网学习-vue项目的构建/打包/发布
- 思睿普信息IT技术服说明
- Spring + JedisCluster操作Redis(集群)
- word怎么将选中的单词全部改为大写
- java的书写规范_java书写规范以及技巧
热门文章
- go返回多个值和python返回多个值对比
- 从WebRtc学习RTP协议
- string.length_C.中的String.Length属性示例
- 八、关于防水透湿整理
- python去掉字符串最外侧的引号_疯狂Python讲义第二章读书笔记
- java怎么获取当前日期_JAVA中获取当前系统时间
- numpy 归一化_归一化(MinMax)和标准化(Standard)的区别
- 709. 转换成小写字母 golang 字符串处理
- wait()和waitpid()的参数解析
- C语言随机数生成超详解