gpt4 book ai didi

python - 忽略 python 文件的其余部分

转载 作者:太空狗 更新时间:2023-10-30 00:44:16 25 4
gpt4 key购买 nike

我的 Python 脚本通常在文件的第一部分包含“可执行代码”(函数、类等),在末尾包含“测试代码”(交互式实验)。

我希望 pythonpy_compilepylint &c 完全忽略最后的实验性内容。

我正在为 cpp 寻找类似 #if 0 的内容。

如何做到这一点?

以下是一些想法及其不好的原因:

  1. sys.exit(0):适用于 python 但不适用于 py_compilepylint
  2. 将所有实验代码放在 def test(): 下:我不能再将代码复制/粘贴到 python REPL 中,因为它有非常重要的缩进<
  3. 将所有实验代码放在带有 """ 的行之间:emacs 不再正确地缩进和字体化代码
  4. 一直注释和取消注释代码:我太懒了(是的,这是一个单一的按键,但我必须记住这样做!)
  5. 将测试代码放到一个单独的文件中:我想把相关的东西放在一起

附言。我的 IDE 是 Emacs,我的 Python 解释器是 pyspark

最佳答案

为您的 REPL 使用 ipython 而不是 python 它具有更好的代码完成和内省(introspection),并且当您粘贴缩进代码时,它可以自动“取消缩进”粘贴的代码。

因此,您可以将实验代码放入测试函数中,然后粘贴到各个部分,而不必担心也不必取消代码缩进。

如果您要粘贴可以被视为单个 block 的大块,那么您将需要使用 %paste%cpaste 魔法。

例如。

    for i in range(3):
i *= 2
# with the following the blank line this is a complete block

print(i)

使用普通粘贴:

In [1]:         for i in range(3):
...: i *= 2
...:

In [2]: print(i)
4

使用%paste

In [3]: %paste
for i in range(10):
i *= 2

print(i)

## -- End pasted text --
0
2
4

In [4]:

PySpark 和 IPython

It is also possible to launch PySpark in IPython, the enhanced Python interpreter. PySpark works with IPython 1.0.0 and later. To use IPython, set the IPYTHON variable to 1 when running bin/pyspark:1

$ IPYTHON=1 ./bin/pyspark

关于python - 忽略 python 文件的其余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31969540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com