J_yang
J_yang

Reputation: 2822

Is it a good idea to use property getter as constant variable for a class

Since Python has no const type. I have some attributes in a class that I do not wish to be modified.

So is it a good idea to define the attributes as property and only give it a getter without a setter? If not what is the issue?

class Aclass:
    def __init__(self):
        # do some init

    @property
    def constA(self):
        return 'abc'

Many thanks.

J

Upvotes: 3

Views: 458

Answers (2)

BramAppel
BramAppel

Reputation: 1366

There is nothing wrong with that. The conventional code looks like this:

class Aclass:
    def __init__(self):
        # the underscore implies that the attribute is private
        self._constA = 'abc'

    @property
    def constA(self):
        return self._constA

Upvotes: 2

gboffi
gboffi

Reputation: 25093

From the docs

This [@property] makes it possible to create read-only properties easily using property() as a decorator.

Upvotes: 3

Related Questions