Fundamentals 4 min read

Master Python’s @property: Turn Methods into Read‑Only Attributes

Learn how Python’s @property decorator transforms methods into read‑only attributes, enabling attribute‑style access, preventing unintended modifications, and illustrating proper usage with code examples that show correct and incorrect calls, common pitfalls, and best practices for encapsulating data.

MaGe Linux Operations
MaGe Linux Operations
MaGe Linux Operations
Master Python’s @property: Turn Methods into Read‑Only Attributes

In Python, @property is a decorator used to turn a method into a read‑only attribute.

1. Purpose

Using @property creates a read‑only attribute, preventing direct modification of the underlying value while allowing attribute‑style access.

2. Usage Scenarios

2.1 Access a method like an attribute

class DataSet(object):
    @property
    def method_with_property(self):
        # contains @property
        return 15

    def method_without_property(self):
        # no @property
        return 15

l = DataSet()
print(l.method_with_property)      # called without ()
print(l.method_without_property()) # must be called with ()

Both calls output 15. Calling a @property -decorated method with parentheses raises TypeError: 'int' object is not callable because the method is now an attribute, not a callable function.

2.2 Prevent attribute modification

Python does not have true private attributes, so @property can hide internal names and expose read‑only properties.

class DataSet(object):
    def __init__(self):
        self._images = 1
        self._labels = 2

    @property
    def images(self):
        # read‑only property
        return self._images

    @property
    def labels(self):
        return self._labels

l = DataSet()
print(l.images)  # accessed as attribute, cannot be modified directly

Attempting to call the property with parentheses or trying to assign to it will result in errors, reinforcing encapsulation.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

PythonEncapsulationDecoratorPropertyread-only
MaGe Linux Operations
Written by

MaGe Linux Operations

Founded in 2009, MaGe Education is a top Chinese high‑end IT training brand. Its graduates earn 12K+ RMB salaries, and the school has trained tens of thousands of students. It offers high‑pay courses in Linux cloud operations, Python full‑stack, automation, data analysis, AI, and Go high‑concurrency architecture. Thanks to quality courses and a solid reputation, it has talent partnerships with numerous internet firms.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.