By continuing to navigate on this website, you accept the use of cookies to serve you more relevant services & content.
For more information and to change the setting of cookies on your computer, please read our Cookie Policy.

Understanding Python Properties

PROPERTIES:

Properties is a class for managing class attributes in Python. Property( ) is a built-in function that creates and returns a property object

 

Syntax:

attribute_name = property(get_Attribute, set_Attribute,del_Attribute(Optional), doc_Attribue(Optional))

where, get_Attritube is function to get value of the attribute,

set_Attribute is function to set value of the attribute,

del_Attribute is function to delete the attribute and

doc_Attribute is a string (like a comment).

Example:

class Celsius:
    def __init__(self, temperature = 0):
        self.temperature = temperature
    def fahrenheit(self):
        return (self.temperature * 1.8) + 32
    def get_temperature(self):
        print("Getting value")
        return self._temperature
    def set_temperature(self, value):
        print("Setting value")
        self._temperature = value
temperature = property(get_temperature,set_temperature)

Here temperature is the property object.property attaches code (get_temperature and set_temperature) to the attribute (temperature).Any code that retrieves the value of temperature will automatically call get_temperature( ).Similarly, any code that assigns a value to temperature will automatically call set_temperature( ).

Example:

>>>c = Celsius( )

Getting value

Here set_temperature( ) was called even when we created an object. The reason is that when an object is created, __init__() method gets called. This method has the line self.temperature = temperature. This assignment called set_temperature( ).

>>>c.temperature
Getting value
0

c.temperature calls get_temperature()

The actual temperature value is stored in the private variable temperature. The attribute temperature is a property object which provides interface to this private variable.

We can use the property with decorators also,Here we are not defining names get_temperature and set_temperature to pollute the class namespace. For this, we reuse the name temperature while defining our getter and setter functions.we can re-write the above example:

class Celsius:
    def __init__(self, temperature = 0):
        self.temperature = temperature
    def fahrenheit(self):
        return (self.temperature * 1.8) + 32
    @property
    def temperature(self):
        print("Getting value")
        return self._temperature
    @temperature.setter
    def temperature(self, value):
        print("Setting value")
        self._temperature = value
    Posted On
  • 23 August 2011
  • By
  • Micropyramid

Need any Help in your Project?Let's Talk

Latest Comments
Related Articles
Integrate Twitter Social API into Django App

Integrating Twitter sign in (OAuth) in Django App, which includes
1. Capturing username via Twitter Login
2. Updating authenticated user current status on twitter(tweets).

Continue Reading...
Publishing Python Modules with PIP via PyPi

We'll install so many packages in our day to day python development. Now in this blog post, we'll try to know how to create our ...

Continue Reading...
FABRIC – LEARNING PART 2

Using Fabric, we can develop interactive script for ec2 region, ec2 flavour amazon web services. For this, you need aws account, security group, key pair, ...

Continue Reading...
open source packages

Subscribe To our news letter

Subscribe and Stay Updated about our Webinars, news and articles on Django, Python, Machine Learning, Amazon Web Services, DevOps, Salesforce, ReactJS, AngularJS, React Native.
* We don't provide your email contact details to any third parties