Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] inclure des fichiers

Sujet résolu
29 octobre 2008 à 15:13:26

Bonjour,
Je voulais savoir si, en python, il était possible d'inclure des fichiers que nous avons créés, dans un autre fichier.

Par exemple, j'ai un fichier nommé calculatrice.py, et je veux y inclure le fichier addition.py
avec toutes ses fonctions.

Voici le code de calculatrice.py:


#!/usr/bin/python
# -*- coding: utf-8 -*-

print "Entrez deux nombres:"
nombre1 = input()
nombre2 = input()
addition(nombre1, nombre2) #J'appelle la fonction addition qui est dans le 
#fichier addition.py


Voci le code de addition.py:


#!/usr/bin/python
# -*- coding: utf-8 -*-

def addition(nombre1, nombre2):
    resultat = nombre1 + nombre2
    print nombre1, " + ", nombre2, " = ", resultat


Pour inclure le fichier addition.py au fichier calculatrice.py, dois-je rajouter la
ligne de code suivante à calculatrice.py:
from addition import *

comme pour les modules (turtle, math, tkinter...) ou il y a une autre méthode?


Merci d'avance :)

  • Partager sur Facebook
  • Partager sur Twitter
29 octobre 2008 à 15:31:09

Tu peux bien sûr inclure tes propres fichiers.
Tu as plusieurs moyens:

from addition import *
addition(1, 2)


ou spécifier les fichiers si tu ne veux pas tout importer
from addition import addition
addition(1, 2)


tu peux également utiliser as
from addition import addition as add
add(a, 2)

ou encore:
import addition
addition.addition(1,2)

Voilà j'espère t'avoir aidé
  • Partager sur Facebook
  • Partager sur Twitter
29 octobre 2008 à 15:37:49

Merci, en effet, tu m'as bien aidé :) !

J'ai une petite question: à quoi correspondent "as" et "add" ?
  • Partager sur Facebook
  • Partager sur Twitter
29 octobre 2008 à 16:35:37

as est utile lorsque le nom de ta fonction ou de ta classe est grand.
Tu peux changer le nom de ta fonction lorsque tu l'importes.

Par exemple, disons que ces fonctions sont dans le fichier mesFonctions.py
def ma_premiere_fonction_avec_un_nom_a_ralonge():
    return True

def ma_deuxieme_fonction_avec_un_nom_a_ralonge():
    return False

Tu peux faire:
from mesFonctions import ma_premiere_fonction_avec_un_nom_a_ralonge, ma_deuxieme_fonction_avec_un_nom_a_ralonge
#ou from mesFonctions import *

a = ma_premiere_fonction_avec_un_nom_a_ralonge()
b = ma_deuxieme_fonction_avec_un_nom_a_ralonge()


Ou avec as:

Tu peux faire:
from mesFonctions import ma_premiere_fonction_avec_un_nom_a_ralonge as f1, ma_deuxieme_fonction_avec_un_nom_a_ralonge as f2
#ou from mesFonctions import *

a = f1()
b = f2()


Les 2 codes sont identiques, mais si à besoin d'utiliser plusieurs fois les fonctions, as devient très pratique
  • Partager sur Facebook
  • Partager sur Twitter
29 octobre 2008 à 16:45:38

Ah, ok, merci! :)
Bon bah...
problème résolu :D
  • Partager sur Facebook
  • Partager sur Twitter
29 juin 2014 à 11:48:47

Salut,

Excusez moi si la question a déjà été posée ou semble évidente.

Je débute en Python et j'ai des connaissances/habitudes en PHP.

Avec php, quand je fais include_once(functions.php); il inclue directement le code contenu dans functions directement là où se trouve la ligne avec l'include.

Ainsi, toutes les variables globales du code sont accessibles dans functions.php.

Avec python, l'équivalent semble être import mais le comportement est complètement différent. Les variables déclarées dans main.py ne sont pas accessibles dans python.py et inversement. Il me faut aussi refaire tous les imports que j'ai déjà fait depuis le main.py

Est-ce qu'il y a un moyen de faire passer ces fameuses variables d'un script à l'autre ?

Merci d'avance pour vos réponses, n'hésitez pas à demander des précisions si je ne suis pas clair.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 juin 2014 à 16:39:13

Salut, si ton script utilise des variables globales, il y a un problème. Par ailleurs, tu devrais poster un nouveau sujet plutôt que d'en déterrer un vieux, merci.

  • Partager sur Facebook
  • Partager sur Twitter
24 mars 2020 à 13:44:23

je debute en python et quand je crée mon module je n arrive pas a executer sur un autre fichier ca affiche:ModuleNotFoundError: No module named 'play'

  • Partager sur Facebook
  • Partager sur Twitter
24 mars 2020 à 14:54:13

Bonjour, @IgnacePaul merci de ne pas déterrer d'ancien sujet résolu.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

-
Edité par AbcAbc6 24 mars 2020 à 14:55:09

  • Partager sur Facebook
  • Partager sur Twitter