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)?
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.
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
Simply use the import command in your Mercedes file. There's a good intro about importing in Python in here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With