为什么C#和Python要屡屡进行混合编程呢?之前我们提到了使用托管C++封装Python的核心库为一个托管dll,然后供C#调用的途径,这种方式算是一种比较科学的方式。但是它仍然有两个小的问题,一来,我们是封装了Win平台的Python,使用的是托管C++,这就侧面说明了这个托管dll是服从于.NET Framework的,而.NET Framework和Windows绑定。二来,我们如果通过源代码的形式来调用Python,那么Python简易方便的编码特性就会完全丢失。总结下来就是两个缺点
1.无法跨平台
2.无法进行优雅的编程
3.进行类型转换的时候比较麻烦
么提到混合编程,还是有非常多的方式的,这里的话,我们实现一种最基本的方式,案例就采用C#和Python。
这种方式就是通过一种传输渠道,可以是文件,也可以是任何的通信渠道。(不管什么渠道,它们都有一个特性,即它们的规范和实现它们的语言没有任何关系)。此处我就可以通过socket来实现,如果是socket实现,那么很好的解决了跨平台和简易编程的问题(此处的简易编程指的是,如果我们通过封装源代码的形式来调用,则完全抛弃了语言的语法)
socket适用于很多不同的语言之间,现在我们尝试用C#和Python来进行普通的交流
默认C#是服务端而Python是客户端
class PyTransfer {
//和Python语言进行socket通信
//communicate with Py