![]() |
1
2
这是我最近得到的:
失败了…在任何情况下,解释器在启动时都会吃掉原始代码(从stdin读取)。最多您可以通过
更新:
这个
甚至当我抛出一个函数时:
|
![]() |
2
3
是的,确实可以编写一个输出自己源代码的程序。您甚至不需要为此任务进行内省,只需要能够打印计算字符串(适用于每种语言)。 这项技术被称为 Quine 在python中有一个很短的例子:
但奎因不仅仅局限于这么简单的节目。他们可以做得更多,例如向后打印自己的源代码等等…:) |
![]() |
3
1
我认为这可以在Unix系统上使用,但我不确定Windows。尾随逗号确保源代码准确打印,没有额外的尾随换行符。
刚刚意识到(基于下面的注释)如果源代码来自
所以,简而言之,不,如果源代码来自标准输入,我不认为用一个函数就可以做到这一点。那里 可以 可以将程序的解释形式作为一个python代码对象来访问,并将其转换回源格式,但转换后的格式几乎肯定与原始文件内容不完全匹配。(例如,评论和shebang行肯定会被删除)。 |