谷歌有一個Python教程,和他們所描述的樣板代碼爲「不幸」,並提供這個例子:Python中的「Boilerplate」代碼?
#!/usr/bin/python
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print 'Hello there', sys.argv[1]
# Command line args are in sys.argv[1], sys.argv[2] ..
# sys.argv[0] is the script name itself and can be ignored
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
main()
被描述爲「看似重複的代碼,一次又一次地表明瞭現在,我聽說樣板代碼爲了得到一些似乎應該更簡單的結果「(example)。上面的例子中
不管怎麼說,在Python中,部分認爲是 「樣板」 的代碼是:
if __name__ == '__main__':
main()
現在,我的問題如下:
1)是否樣板代碼在Python(如所提供的例子)採用與我提供的定義相同的定義?如果是這樣,爲什麼?
2)此代碼是否必要?在我看來,代碼運行是否存在主要方法。是什麼使得這個代碼更好?它更好嗎?
3)爲什麼我們使用該代碼以及它提供了哪些服務?
4)這是否發生在整個Python?是否還有其他「樣板代碼」的例子?
哦,只是一個題外話的問題:你需要import sys
在Python中使用命令行參數?如果它不在那裏,它如何處理這樣的論點?
無論您是否導入它,都會存在'sys'。如果你不這樣做,你就不能在你的代碼中使用它。 –
關於這個特定的樣板代碼,你應該總是使用'#!/ usr/bin/env python'而不是'!/ usr/bin/python',因爲這會得到用戶/環境特定的python版本。這是更可取的,因爲用戶可以讓python調用別的東西或者安裝在/ bin之外的位置,儘管這些事情通常都不是真的。然而,作爲處理這個錯誤的人,我可以告訴你他們非常沮喪。它的類似於硬編碼路徑或使用相對路徑之間的區別。 – guribe94
例如Python 2和3的樣板,請看[python-boilerplate.com](https://www.python-boilerplate.com) –