2010-06-15 96 views
3
def start(fileName): 
    fileReader = open(fileName) 
    for row in fileReader: 
    print row, 

if __name__ == "__main__": 
    import sys 
    if len(sys.argv) <= 1: 
    print "usage quine /path/to/file" 
    sys.exit(-1) 
    fileName = sys.argv[0] 
    start(fileName) 

蟒蛇quine.py富這是一個有效的奎因?

+2

我相信quines的整個點是沒有這層間接的:-) – dtb 2010-06-15 17:43:15

回答

9

不,奎因不應該採取任何輸入:

一個奎因概不輸入。允許輸入將允許源代碼通過鍵盤輸入程序,打開程序的源文件和類似的機制。

Quine (computing)

UPDATE

您需要編碼源到奎因本身。一個quine由兩部分組成:執行實際打印的代碼和代表源代碼的數據。它似乎是遞歸的,但不是真的。對於一個好的教程,我建議檢查this link;這正是我用我設計的語言創造了一個奎因。

+0

謝謝,我贏了一個賭注:-)(有些人不信任維基百科) – fsm 2010-06-16 18:00:37

2

基內斯無法訪問文件系統,所以沒有。正如維基百科所述,「允許輸入將允許源代碼通過鍵盤輸入程序,打開程序的源文件以及類似的機制。」

參考: Wikipedia: Quine (computing)