Consider this code:

class SetGet:

    _x = 1

    @property
    def x(self):
        return self._x

    @x.setter
    def x(self, value):
        self._x = value


class Dynamic:

    x = 1

if __name__ == '__main__':

    a = SetGet()

    print(f'x = {a.x}')
    a.x = 2
    print(f'x = {a.x}')

    a = Dynamic()
    print(f'x = {a.x}')
    a.x = 2
    print(f'x = {a.x}')


Output is the same:

x = 1
x = 2
x = 1
x = 2

If I have public property and I am not doing any transformation with data that 
is used to sat variable value... do I need a setter/getter at all?


Is there any difference if property "_x" is defined as class property as in the 
case in SetGet class, or if I have put it in the SetGet inite like:

class SetGet:
    def __init__():
        self._x = 1

(the rest is the same).

When I said "difference", I mean except the fact that in init I can change 
"_x"'s value at the time of class construction.

Regards
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to