2013-04-12 89 views
5

提前道歉,這是我真正想到的,我可以在網上找到的東西,但我遇到了麻煩。

在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)的例子。所以$被封裝在版本中(這將隨着時間的推移而改變)和日期(這也將改變)。假設它是某種指針,以便始終獲取有關版本,日期等的最新信息,有人能指出我的工作方式嗎?哪個源代碼管理軟件使用這種語法?在不同語言中是否一樣?

謝謝!

回答

3

這不是特定於Python,它是由源代碼管理系統使用的東西,返回到RCS和CVS。

有關CVS語法的列表,請參見CVS Keywords。雖然現在很少有人使用CVS,但許多源控制系統人員使用(最值得注意的是顛覆)來處理CVS語法或其略微變化。 (有些人還創建了構建腳本,可以在構建時進行類似的替換而不是檢入時間。)

+0

非常感謝!我認爲這是這樣的,但找不到任何東西來確認你說的話。感謝您的鏈接。 –

2

這是subversion's keyword substitution(最初是CVS的)的結果。是的,它適用於所有文件,而不僅僅是Python源代碼。

+0

嗨帕維爾,非常感謝!我其實想說你和abarnet的都是「正確的」,但我猜StackExchange不會讓我選擇2個正確的答案。 –

1

這被稱爲「關鍵字替代」,這個想法的變體在許多版本控制系統中實現,如RCS,CVS和Subversion。鑑於此,您現在可以輕鬆地在網上搜索有關詳細信息。

1

這不是python特有的。

某些版本控制系統(RCS,CVS和SVN至少)會自動插入帶有這些特殊變量的版本號和文件的上次修改日期。

相關問題