Python与C#的整合

1 投票
2 回答
838 浏览
提问于 2025-04-17 04:28

我决定在完成学业之前尝试制作一个游戏。在网上搜索后,我决定用Python来编写基本的游戏逻辑(因为这样简单且开发速度快),而用C#来做实际的输入输出引擎(因为这样性能更好,具体来说,我使用的是Mono和SFML库)。

在熟悉了这两种语言和开发环境后,我在将它们结合起来时遇到了困难,这让我有了三个问题(最重要的是第二个):

a. 哪个模块应该包含另一个模块?是让Python的游戏逻辑调用C#的输入输出,然后更新输出,还是反过来?

b. 不管答案是什么,我该怎么做?我没有找到关于在这两种语言中移植或整合脚本或二进制文件的具体说明。

c. 模块之间的调用会对性能造成显著影响吗?如果会,那我是不是应该只用一种语言来开发所有内容?

谢谢!

2 个回答

2

你有没有考虑过使用IronPython?它很容易集成,而且因为它直接和.net一起工作,所以整合起来非常顺利。

2

老实说,我觉得现在的C#从Python中学到了很多好东西。引用一下Jon Skeet的话:

你知道我最喜欢动态语言,比如Python、Ruby和Groovy的什么吗?它们能让你的代码变得简洁,只留下最核心的部分——那些真正能做事情的代码。繁琐的格式化被一些特性取代,比如生成器、匿名函数和列表推导式。

有趣的是,很多让动态语言感觉轻便的特性,其实和“动态”本身没有太大关系。当然,有些特性是相关的,比如鸭子类型和Active Record中用到的一些魔法,但静态类型语言也不一定就要笨重和复杂。

而且你也可以使用动态类型。这是一个新项目,我在这里只会用C#。

撰写回答