web-dev-qa-db-fra.com

Créer un objet de la 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), dans lequel je veux créer un objet Mercedes 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 que celui où je l'ai créé (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)

Quelles 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)?

24
Trenera

Dans votre Mercedes.py, vous devez importer le fichier car.py comme suit (tant que les deux fichiers sont dans le répertoire same):

import car

Ensuite, vous pouvez faire:

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

Alternativement, vous pourriez faire

from car import Car

Mercedes = Car('Mercedes', 'S Class', 'Red')      #no need of 'car.' anymore
46
sshashank124

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

0
Oren T