Question

I have done several tutorials on Python and I know how to define classes, but I don't know how to use them. For example I create the following file (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'

Then I create another file (Mercedes.py), where I want to create an object Mercedes from the class Car:

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

, but I get an error:

NameError: name 'Car' is not defined

If I create an instance (object) in the same file where I created it (car), I have no problems:

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)

Which prints:

Red

So the question is: How can I create an object from a class from different file in the same package (folder)?

Was it helpful?

Solution

In your Mercedes.py, you should import the car.py file as follows (as long as the two files are in the same directory):

import car

Then you can do:

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

Alternatively, you could do

from car import Car

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

OTHER TIPS

Simply use the import command in your Mercedes file. There's a good intro about importing in Python in here

Mercedes.py:

from car import Car

This imports the Car class from car.py To use it:

Mercedes=Car('Mercedes', 'S Class', 'Red')
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top