jjzjj

python - 元组在 CPython 中是如何实现的?

我一直在尝试了解CPython是如何在幕后实现的。Python是高级别的很好,但我不喜欢把它当作一个黑盒子。考虑到这一点,如何实现元组?我看过thesource(tupleobject.c),但它超出了我的想象。我看到PyTuple_MAXSAVESIZE=20和PyTuple_MAXFREELIST=2000,什么是保存和“空闲列表”?(长度为20/21或2000/2001的元组之间会有性能差异吗?是什么强制执行最大元组长度?) 最佳答案 需要注意的是,此答​​案中的所有内容均基于我从查看您链接的实现中收集到的内容。元组的标准实现

python - 为什么这两个功能不同?

看看这个:>>>deff():...return(2+3)*4...>>>dis(f)20LOAD_CONST5(20)3RETURN_VALUE显然,编译器已经预先评估了(2+3)*4,这是有道理的。现在,如果我只是改变*的操作数的顺序:>>>deff():...return4*(2+3)...>>>dis(f)20LOAD_CONST1(4)3LOAD_CONST4(5)6BINARY_MULTIPLY7RETURN_VALUE表达式不再完全预评估!这是什么原因?我正在使用CPython2.7.3。 最佳答案 在第一种情况下,未

python - 为什么这两个功能不同?

看看这个:>>>deff():...return(2+3)*4...>>>dis(f)20LOAD_CONST5(20)3RETURN_VALUE显然,编译器已经预先评估了(2+3)*4,这是有道理的。现在,如果我只是改变*的操作数的顺序:>>>deff():...return4*(2+3)...>>>dis(f)20LOAD_CONST1(4)3LOAD_CONST4(5)6BINARY_MULTIPLY7RETURN_VALUE表达式不再完全预评估!这是什么原因?我正在使用CPython2.7.3。 最佳答案 在第一种情况下,未

python - 你能从 python 中重新分配 __builtins__ 中恢复过来吗?

如果我打开交互模式并输入:__builtins__=0#breakseverything我是否完全中断了session?如果是这样,幕后发生了什么将__builtins__分配给解释器无法处理的内置模块?如果没有,我该如何从中恢复?只是我自己尝试修复它的一些尝试:任何导入任何内容的尝试都会导致错误“ImportError__import__notfound”除了计算数值表达式之外,我可能用来做任何事情的所有函数都损坏了还有另一个变量__package__仍然可以访问,但我不知道是否/如何使用它。 最佳答案 即使__builtins_

python - 你能从 python 中重新分配 __builtins__ 中恢复过来吗?

如果我打开交互模式并输入:__builtins__=0#breakseverything我是否完全中断了session?如果是这样,幕后发生了什么将__builtins__分配给解释器无法处理的内置模块?如果没有,我该如何从中恢复?只是我自己尝试修复它的一些尝试:任何导入任何内容的尝试都会导致错误“ImportError__import__notfound”除了计算数值表达式之外,我可能用来做任何事情的所有函数都损坏了还有另一个变量__package__仍然可以访问,但我不知道是否/如何使用它。 最佳答案 即使__builtins_

python - 从 Python 打印到标准打印机?

是否有合理的标准和跨平台方式将文本(甚至PS/PDF)打印到系统定义的打印机?假设CPython在这里,不像使用Jython和JavaprintingAPI那样聪明。. 最佳答案 这仅在Windows上测试过:您可以执行以下操作:importosos.startfile("C:/Users/TestFile.txt","print")这将在其默认打开器中使用动词“打印”启动文件,它将打印到您的默认打印机。仅需要标准库附带的os模块 关于python-从Python打印到标准打印机?,我们

python - 从 Python 打印到标准打印机?

是否有合理的标准和跨平台方式将文本(甚至PS/PDF)打印到系统定义的打印机?假设CPython在这里,不像使用Jython和JavaprintingAPI那样聪明。. 最佳答案 这仅在Windows上测试过:您可以执行以下操作:importosos.startfile("C:/Users/TestFile.txt","print")这将在其默认打开器中使用动词“打印”启动文件,它将打印到您的默认打印机。仅需要标准库附带的os模块 关于python-从Python打印到标准打印机?,我们

python - PyPy 在 CPython、Jython 和 IronPython 上提供了什么?

根据我在博客上看到和阅读的内容,PyPy是一个非常雄心勃勃的项目。与它的sibling(CPython、Jython和IronPython)相比,它将带来哪些优势?是速度、跨平台兼容性(包括移动平台)、在没有GIL的情况下使用c扩展的能力,还是这更多的是关于可以做什么的技术练习? 最佳答案 PyPy真的是两个项目:一个解释器编译器工具链,允许您在RPython(Python的一个静态子集)中编写解释器,并为JVM、.NET(等)独立编译跨平台解释器RPython中的Python实现这两个项目允许许多东西。在Python中维护Pyth

python - PyPy 在 CPython、Jython 和 IronPython 上提供了什么?

根据我在博客上看到和阅读的内容,PyPy是一个非常雄心勃勃的项目。与它的sibling(CPython、Jython和IronPython)相比,它将带来哪些优势?是速度、跨平台兼容性(包括移动平台)、在没有GIL的情况下使用c扩展的能力,还是这更多的是关于可以做什么的技术练习? 最佳答案 PyPy真的是两个项目:一个解释器编译器工具链,允许您在RPython(Python的一个静态子集)中编写解释器,并为JVM、.NET(等)独立编译跨平台解释器RPython中的Python实现这两个项目允许许多东西。在Python中维护Pyth

python - cpython和python有什么区别吗

这个问题在这里已经有了答案:PythonvsCpython(11个回答)关闭4年前。我想知道CPython和Python的区别,因为听说Python是用C开发的——那CPython有什么用呢? 最佳答案 Python是一种语言。CPython是Python的默认字节码解释器,用C语言编写。还有其他Python实现,例如IronPython(用于.NET)、Jython(用于Java)等。 关于python-cpython和python有什么区别吗,我们在StackOverflow上找到一