【问题标题】:Need to find the source code for print or printf in python [closed]需要在python中找到print或printf的源代码[关闭]
【发布时间】:2012-10-27 08:32:40
【问题描述】:

我正在做一些我无法完全谈论的事情。我只能说我是信息安全和计算机科学专业的学生。

我只需要更改 python 深处的一些源代码。现在,我特别想更改内置打印函数中的源代码。不幸的是,我在 python 源代码文件中的任何地方都找不到它的定义。

有什么想法吗?

非常感谢。

编辑:特别是要询问 Python 中的打印函数是否可以用其他内容覆盖的问题。这是为了在 Python 解释器中植入后门。

【问题讨论】:

  • 如果没有更多关于您要达到的目标的信息,就不可能提供有意义的答案。例如,如果您想更改 print 的功能,您可能只想替换 sys.stdout
  • 我在寻找有关 print 如何处理 unicode 字符串的更多信息时发现了这个问题。答案对我很有用。谢谢!另外我觉得标题可以改成:“Need to change ...”而不是“Need to find...”。

标签: python printing printf


【解决方案1】:

在 cpython 中,print 函数是用 C 实现的,而不是 Python。您可以找到source code here,但您必须重新编译 cpython 才能使更改生效。

如需在 Python 中实现print,请查看pypy's version

【讨论】:

  • 感谢 phihag。这正是计划。我想重新编译它以使其工作。两个问题 — 1. 我可以用 Python 代替 cpython 做同样的事情吗? 2. 是否有人可以使用检查模块或任何其他方式读取它的源代码?
  • 哦!只是阅读它。非常感谢。 [哇!]
  • 听起来您并不确切知道要实现目标需要做什么。请详细说明您的问题是什么以及您要达到的目标。几乎可以肯定,重新编译 Python 不是您需要做的,也不是实现它的最佳方式。
  • '听起来您并不确切知道要实现目标需要做什么。请详细说明您的问题是什么以及您要达到的目标。对不起我的无知,但不幸的是我不能。请原谅我。我想我知道我在做什么。我有选择地需要更改源代码以在 python 中完成某些事情。 '重新编译 Python 几乎肯定不是你需要做的' 嗯。再次抱歉,我无法进一步强调这一点。谢谢! :)
  • @omniDETH 我认为每个人都在指出,你坚持需要重新编译 Python,这是做任何事情的正确方法,但同时你需要进入 SO(非常隐蔽和匕首风格),因为您无法从公共存储库中追踪一些相关代码......我希望它可以解决,但我想我们永远不会知道;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-13
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
  • 2020-10-12
相关资源
最近更新 更多