FAQ: Learn Python: Classes - Instance Variables


This community-built FAQ covers the “Instance Variables” exercise from the lesson “Learn Python: Classes”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Computer Science

FAQs on the exercise Instance Variables

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!


Hello! I am curious about something. In a previous lesson we learned to create a variable and then we can call it later with the object.variable syntax. Here it seems that you can skip the creating a variable step and simply put the object.variable = value syntax which does both of the previous steps in one. Am I correct in my observations?


I had the same question until I realised I confuse a “class variable” with an “instance variable”. They are not the same thing:
A class variable needs the "creating a variable step " as you call it, in the intended block of the Class. If it is called later by any object using the syntax object.variable, it will yield the same data for every instance/object of the class.
Although an instance variable uses the same attribute notation used for accessing class variables (object.variable ) it does so in order to assign data to the object. The data now is not shared by all instances of the class, they re specific to the object they are attached to.