Créer un objet à partir d'une classe dans un fichier séparé

J'ai fait plusieurs tutoriels sur Python et je sais comment définir des classes, mais je ne sais pas comment les utiliser. Par exemple, je crée le fichier suivant (car.py):

class Car(object):
    condition = 'New'
    def __init__(self,brand,model,color):
        self.brand = brand
        self.model = model
        self.color = color

    def drive(self):
        self.condition = 'Used'

Ensuite, je crée un autre fichier (Mercedes.py), où je veux créer un objet Mercedes à partir de la classe Car:

Mercedes = Car('Mercedes', 'S Class', 'Red')

, mais je reçois une erreur:

NameError: name 'Car' is not defined

Si je crée une instance (objet) dans le même fichier où je l'ai créée (voiture), je n'ai aucun problème:

class Car(object):
    condition = 'New'
    def __init__(self,brand,model,color):
        self.brand = brand
        self.model = model
        self.color = color

    def drive(self):
        self.condition = 'Used'

Mercedes = Car('Mercedes', 'S Class', 'Red')

print (Mercedes.color)

Qui impressions:

Red

La question est donc: Comment puis-je créer un objet à partir d'une classe à partir d'un fichier différent dans le même package (dossier)?

22
demandé sur omerbp 2014-04-23 12:03:01

2 réponses

Votre Mercedes.py, vous devez importer l' car.py fichier comme suit (aussi longtemps que les deux fichiers sont dans le même répertoire):

import car

, Alors vous pouvez faire:

Mercedes = car.Car('Mercedes', 'S Class', 'Red')  #note the necessary 'car.'

Alternativement, vous pouvez faire

from car import Car

Mercedes = Car('Mercedes', 'S Class', 'Red')      #no need of 'car.' anymore
39
répondu sshashank124 2014-04-23 08:04:17

Utilisez simplement la commande import dans votre fichier Mercedes. Il y a une bonne introduction sur l'importation en Python dans ici

0
répondu Oren T 2016-12-07 13:27:40