如何判断我使用了哪种python实现';我在用什么?

如何判断我使用了哪种python实现';我在用什么?,python,cpython,Python,Cpython,Python有几个不同的实现:CPython、Jython、pypypy等等。我想通过编程确定代码运行在哪个实现上。我该怎么做 具体来说,为我编写一个名为get\u implementation\u name()的函数: impl_name = get_implementation_name() if impl_name == "CPython": print "I can abuse CPython implementation details. (I'm a bad, bad man.)

Python有几个不同的实现:CPython、Jython、pypypy等等。我想通过编程确定代码运行在哪个实现上。我该怎么做

具体来说,为我编写一个名为
get\u implementation\u name()
的函数:

impl_name = get_implementation_name()
if impl_name == "CPython":
  print "I can abuse CPython implementation details. (I'm a bad, bad man.)"
elif impl_name == "PyPy":
  print "Can't count on reference-counting garbage collection here..."
else:
  print "I better be careful..."
怎么样

它给你

platform.python_implementation()

“为我写一个函数”从来都不是一个好问题,我不同意。强烈地。我们是程序员。有时代码比散文更清晰。说“这里有一些代码,请填写缺少的函数”可以非常简洁地解释您的需求是什么,它消除了一些潜在的混淆源。它给人的印象是要求很高,让您看起来像一个“请给我代码”的人。你的问题可能不是这样,但你有可能触发读者的蜥蜴脑,让他们在正确阅读之前跳过你的问题。要明白,这里批评问题的目的不是让你觉得自己做错了什么,而是告诉你如何吸引并保持对你问题的最大关注。(另请参见:毫无意义的防御策略)当然。对不起,如果我的评论听起来像是防御。谢谢你的建议。是的,我完全同意。这仍然是最简洁、明确和幽默的问题变体,保证会引起混乱和歧义。我的意思是:
“我可以滥用CPython实现细节。”
C'mon!太棒了。超级蝙蝠鱼应该受到表扬,而不是惩罚,因为它会开玩笑地说蟒蛇式的话。我想可以接受的答案是:
importplatform;get_implementation_name=platform.python_implementation
:-)@DSM:Yes,是在Python2.6中引入的。好吧,这将向您展示当我不保持最新状态时会发生什么!我们可以将python实现从Cpython更改为pypypy吗?如果是,我们怎么做?@gauravparashar如果你有单独的问题,请单独提问
platform.python_implementation()