What Is an Object in Python?

In Python, an object is a value that exists in memory.

This idea is important because everything you work with in Python is an object. That includes:

  • numbers
  • strings
  • lists
  • dictionaries
  • booleans
  • functions

If you understand what an object is, it becomes easier to understand types, methods, and some common errors.

Quick example #

A quick way to see that different values in Python are objects with different types:

x = 10
print(type(x))

name = "Sam"
print(type(name))

items = [1, 2, 3]
print(type(items))

Expected output:

<class 'int'>
<class 'str'>
<class 'list'>

This shows that:

  • 10 is an object of type int
  • "Sam" is an object of type str
  • [1, 2, 3] is an object of type list

If you want to learn more, see the Python type() function explained.

Simple definition #

An object is a value stored in memory.

In Python:

  • everything you work with is an object
  • objects have a type
  • different object types behave differently

Common examples of objects include:

  • numbers like 5
  • strings like "hello"
  • lists like [1, 2, 3]
  • dictionaries like {"a": 1}
  • functions like print

What makes something an object #

In Python, an object usually has a few basic parts:

  • A type
    The type tells Python what kind of object it is, such as int, str, or list.

  • Data
    The object stores some value or information.

  • Behavior
    Some objects have methods you can use.

You can inspect an object with built-in functions such as:

  • type(value) to see its type
  • id(value) to see its identity in memory
  • dir(value) to see available attributes and methods

Example:

value = "hello"

print(type(value))
print(id(value))
print(dir(value))

If you want to explore these tools, see:

Common examples of objects #

Here are some common Python objects:

print(type(5))
print(type("hello"))
print(type([1, 2, 3]))
print(type({"a": 1}))
print(type(True))

Expected output:

<class 'int'>
<class 'str'>
<class 'list'>
<class 'dict'>
<class 'bool'>

So:

  • 5 is an int object
  • "hello" is a str object
  • [1, 2, 3] is a list object
  • {"a": 1} is a dict object
  • True is a bool object

For a broader overview, see Python data types overview.

Objects and variables #

A variable is not the object itself.

A variable is just a name that refers to an object.

Example:

x = 10
y = x

print(x)
print(y)
print(x is y)

Expected output:

10
10
True

In this example:

  • 10 is the object
  • x refers to that object
  • y also refers to that same object

So two variables can point to the same object.

xy10
Both x and y refer to the same 10 object.

This is one reason beginners sometimes get confused. They may think the variable contains the value in a simple way, but in Python it is more accurate to say the variable refers to an object.

Objects and methods #

Some objects have methods that you call with dot notation.

A method is a function connected to an object.

For example, a string object has methods like upper():

text = "hello"
print(text.upper())

Output:

HELLO

A list object has methods like append():

items = [1, 2]
items.append(3)
print(items)

Output:

[1, 2, 3]

This helps explain why different objects behave differently:

  • strings have string methods
  • lists have list methods
  • integers do not have the same methods as strings or lists

To learn more, see what is a method in Python.

Why beginners should care #

Understanding objects helps with many basic Python ideas.

It helps you understand:

  • why different values have different types
  • why "hello".upper() works
  • why [1, 2].append(3) works
  • why some method calls fail on the wrong type
  • why errors like AttributeError: object has no attribute happen

For example, this causes an error:

number = 10
print(number.upper())

Why? Because 10 is an int object, and int objects do not have an upper() method.

What this page does not cover #

This page defines the term object only.

It does not fully explain:

  • classes
  • object-oriented programming
  • custom objects you create yourself

Those topics are separate and are better learned step by step.

If you want to continue, see:

Common mistakes #

Beginners often run into these misunderstandings:

  • Thinking only class instances are objects
    In Python, basic values like integers and strings are objects too.

  • Confusing a variable name with the object it refers to
    The variable is just a name.

  • Assuming all objects have the same methods
    Different object types have different methods.

  • Trying to use a list method on a string or a string method on an int
    Methods depend on the type of object.

Useful commands for checking an object:

print(type(value))
print(id(value))
print(dir(value))
help(type(value))

These can help you answer questions like:

  • What kind of object is this?
  • What methods does it have?
  • Am I using the right method for this type?

FAQ #

Is everything in Python really an object? #

Yes. Common values like integers, strings, lists, functions, and even classes are objects in Python.

Is a variable an object? #

No. A variable is a name that points to an object.

Is a class the same as an object? #

A class is also an object in Python, but beginners usually learn it as a blueprint used to create other objects.

How do I check what kind of object I have? #

Use type(value) to see the object’s type.

See also #

Press Esc to close