2010-06-15 51 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)