J'ai peu de problème avec l'importation de cours à Python. Mon flux de travail va comme celui-ci Je veux appeler fonction fichier d'index --- [index.py] [1] p> [1]: http://pastebin.com/qnb53kte et display.py -" http: //pastebin.com/vrsjumzq " p> p> en-tête () code>, corps () code> et footer () code> dans mon display.py code> page. Quelqu'un me fera-t-il clairement sur cette question dans Python. Merci de votre préoccupation. P>
6 Réponses :
Je ne sais pas si je vous comprends correctement, mais je crois que vous vous demandez comment importer le modèle code> Classe Code> dans un autre script. L'instruction code> Importation code> est ce dont vous avez besoin:
from index import template foo = template() foo.header() foo.body() foo.footer()
Il y a quelques fautes de frappe ici, cela rend votre réponse complètement absurde.
@Sil: La première révision de ma réponse était en effet assez buggy. Si ce n'était pas pour la fonctionnalité ennuyeuse "Êtes-vous humain", les fautes de frappe auraient été réparées avant votre commentaire :)
Qu'avez-vous essayé? Ce qui suit serait une manière normale d'utiliser des méthodes de modèle code> de classe code> après l'importation.
from index import Template t = Template() t.header() t.body() t.footer()
J'ai essayé la même chose comme tu l'as fait. mais je reçois toujours une répétition comme 2 fois le corps () etc.
@user: Vous appelez probablement des méthodes à partir du modèle code> code> 'S __ init __ code>. Sinon, rien dans ce code ne produirait de duplicata.
Vous appelez ce qui suit: p> t = HtmlTemplate()
t.Header()
t.Body()
ouais chaque fonction a un paramètre soi-même dont je suis conscient de
Quels autres problèmes avez-vous? Pouvez-vous nous fournir plus de code?
Comme mon flux de travail ci-dessus, j'ai un fichier index.py [avec une classe et des fucntions donnés] et du fichier index.py, je veux passer des valeurs de formulaire () à afficher.py. Dans display.py, je dois appeler seulement l'en-tête (), le corps () et le pied de page (). Mais je fais les mêmes choses comme vous l'avez dit, mais j'ai une répétition dans la page d'affichage. La page d'affichage va comme ça - Hauteur (), Corps (), Formulaire (), Footer () et retour Corps () et un autre cotent de la page d'affichage.
@user: Nous devons voir le code réel de la classe de votre modèle et de ses méthodes. Nous ne sommes pas des médiums.
@ user343934: si vous appelez corps () code> deux fois, vous vous attendez certainement à la sortie du corps Corps () code> deux fois ...
@ user343934: umm, vous avez appelé corps () code> à nouveau?
@ user343934: merci pour la pâtebine. Vous avez vu comme c'était facile? :] code>
Je veux dire dans l'affichage.py je peux trouver le corps, former des répétitions
@ user343934: parce que tout devient "exécuté" lorsque vous l'importaez. Voir ma réponse modifiée.
Vous avez le code suivant en haut et en bas de ceci sera appelé chaque fois que vous Pour éviter que cela se produise, mettez-le donc dans un bloc ainsi: p> ... ou mieux mettre ce code Fonctions forte> qui peut être appelée d'ailleurs. p> p> index.py code>: index d'importation < /code >.
Il semble fonctionner mais toujours avec une erreur qui dans display.py je reçois "type de contenu: texte / html" en haut
Oui ... ce code est également tiré avec le module. J'ai inclus cela dans ma réponse révisée.
@ user343934: Ouais, car vous auriez dû mettre le type de contenu également dans une syntaxe appropriée HTML.
Au bas de votre fichier d'index, vous créez un objet htmltemplate code> et appelez toutes les méthodes à ce sujet. Étant donné que ce code n'est contenu dans aucun autre bloc, il est exécuté lorsque vous importez le module. Vous devez soit le supprimer ou vérifier si le fichier est en cours d'exécution à partir de la ligne de commande. if __name__ == "__main__":
objx=HtmlTemplate()
objx.Header()
objx.Body()
objx.Form()
objx.Footer()
objx.CloseHtml()
La solution ci-dessous a fonctionné pour moi:
class1(unittest.TestCase):
def method1(self)
class2(unittest.TestCase):
def method2(self):
instance_name = class1("method1")
instance_name.method1()
Je vous recommande de lire plus de tutoriels Python. Beaucoup d'exemples là-bas.
=] code>En outre, veuillez noter que le guide de style Python ( python.org/dev/peps/pep -0008 ) recommande d'utiliser des mots-clés dans les noms de classe, pas toutes les lettres minuscules.
Merci pour le code! Nous n'aurions pas pu le comprendre autrement. Maintenant, allez accepter plus de réponses. = 3