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

python quine.py fooEst-ce un quine valide?

+2

Je crois que tout le point de quines est de ne pas avoir cette couche d'indirection :-) – dtb

Répondre

9

Non, Quine ne doit pas prendre toute entrée:

A Quine ne prend aucune entrée. Permettre l'entrée permettrait au code source d'être introduit dans le programme via le clavier, en ouvrant le fichier source du programme et des mécanismes similaires.

De Quine (computing).

MISE À JOUR

Vous devez encoder la source dans le Quine lui-même. Un quine se compose de deux parties: le code qui effectue l'impression et les données qui représentent le code source. Cela semble récursif, mais ce n'est pas vraiment le cas. Pour un bon tutoriel de quine, je recommande de vérifier this link; c'est ce que j'ai utilisé pour créer un quine dans un langage que j'ai conçu.

+0

Merci, j'ai gagné un pari :-) (Certaines personnes ne font pas confiance wikipedia) – fsm

2

Quines ne peuvent pas accéder au système de fichiers, donc pas. Comme le dit Wikipedia, "Permettre l'entrée permettrait au code source d'être introduit dans le programme via le clavier, en ouvrant le fichier source du programme, et des mécanismes similaires.".

Référence: Wikipedia: Quine (computing)