【问题标题】:Python headers -- What is the purpose of the $ ( dollar sign ) encapsulation?Python 标头——$(美元符号)封装的目的是什么?
【发布时间】:2013-04-12 23:41:36
【问题描述】:

提前道歉,这是我真的认为我可以在网上找到的东西,但我遇到了麻烦。

在 Python 中,在标题部分,我看到有时人们会用美元符号 ( $ ) 包装他们的文字。从示例来看,似乎这是一个用于填写自动更新信息的指针(可能是通过源代码管理?),但我不明白它是如何工作的。

例如:

__version__ = '$Revision: 4799 $'.split()[1]
__date__ = '$Date: 2006-09-25 11:09:02 -0400 (Mon, 25 Sep 2006) $'.split()[1]
__author__ = 'John Doe FIX: put in the authors name'

是我在 (Python Example Documentation Template) 找到的一个示例。所以 $ 包裹在版本(会随着时间而改变)和日期(也会改变)周围。假设它是某种指针,可以始终捕获有关版本、日期等的最新信息,有人可以指出它是如何工作的吗?哪个源代码控制软件使用这种语法?跨语言是一样的吗?

谢谢!

【问题讨论】:

    标签: python code-documentation


    【解决方案1】:

    这不是 Python 特有的,它是源代码控制系统使用的东西,可以追溯到 RCS 和 CVS。

    有关 CVS 语法的列表,请参阅 CVS Keywords。虽然现在很少有人使用 CVS,但人们确实使用的许多源代码控制系统(最显着的是 subversion)处理 CVS 语法或它的轻微变体。 (而且有些人还创建了在构建时而不是签入时执行类似替换的构建脚本。)

    【讨论】:

    • 非常感谢!我以为是这样的,但找不到任何东西来证实你所说的。感谢您的链接。
    【解决方案2】:

    这是subversion's keyword substitution(最初是CVS)的结果。是的,它适用于所有文件,而不仅仅是 python 源代码。

    【讨论】:

    • 嗨,帕维尔,非常感谢!我实际上想说你的和 abarnet 的都是“正确的”,但我猜 StackExchange 不允许我选择 2 个正确答案。
    【解决方案3】:

    这称为“关键字替换”,这种想法的变体在许多版本控制系统中实现,例如 RCS、CVS 和 Subversion。鉴于此,您现在可以轻松地在网络上搜索详细信息。

    【讨论】:

      【解决方案4】:

      它不是特定于 python 的。

      某些版本控制系统(至少是 RCS、CVS 和 SVN)会使用这些特殊变量自动插入文件的修订号和最后修改日期。

      【讨论】:

        猜你喜欢
        • 2020-09-22
        • 2020-01-20
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 2022-04-11
        • 2015-06-24
        • 1970-01-01
        • 2011-07-06
        相关资源
        最近更新 更多