Object Oriented Programming/Properties

Properties in OOP are also able to be looked at as functions, a property houses a function that can have its procedures or variables altered without directly going to the code and editing it. A property can be changed or updated based on user input which allows for a lot of user-interactive programs and applications.'

In Python, the property keyword allows you to define getter, setter, and deleter methods for class attributes, making them act like properties. This enables you to control the access and modification of class attributes while providing a clean interface for external code. In example , we use the @property decorator to create getter methods for each attribute, allowing us to access these attributes using obj.attribute1

class MyClass:
    def __init__(self, attribute1, attribute2):
        self._attribute1 = attribute1
        self._attribute2 = attribute2
        
    @property
    def attribute1(self):
        return self._attribute1

    @attribute1.setter
    def attribute1(self, value):
        # Perform any validation or custom logic here
        self._attribute1 = value
        
# Usage example
obj = MyClass("Value 1", "Value 2")
print("Attribute 1:", obj.attribute1)

#Using property to add in new values
obj.attribute1 = "New Value 1"
print("Updated Attribute 1:", obj.attribute1)


sss

class Animal:
    def __init__(self, species, name, age):
        self._species = species
        self._name = name
        self._age = age

    # Getter methods
    @property
    def species(self):
        return self._species

    @property
    def name(self):
        return self._name

    @property
    def age(self):
        return self._age

    # Setter methods
    @name.setter
    def name(self, new_name):
        self._name = new_name

    @age.setter
    def age(self, new_age):
        self._age = new_age

    # Other methods
    def make_sound(self):
        pass

    def move(self):
        pass

See also edit