Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create object from class in separate file

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

like image 312
Trenera Avatar asked Apr 23 '14 08:04

Trenera


People also ask

Should classes be in separate files?

If you have a class that really needs to be a separate class but is also only used in one place, it's probably best to keep it in the same file. If this is happening frequently, though, you might have a bigger problem on your hands.


2 Answers

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 
like image 141
sshashank124 Avatar answered Sep 23 '22 00:09

sshashank124


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

like image 35
Oren T Avatar answered Sep 25 '22 00:09

Oren T