View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
Class Attribute: Class Attributes are unique to each class. Each instance of the class will have this attribute.
Example:
Python3
class
Employee:
count
=
0
def
increase[
self
]:
Employee.count
+
=
1
a1
=
Employee[]
a1.increase[]
print
[a1.count]
a2
=
Employee[]
a2.increase[]
print
[a2.count]
print
[Employee.count]
Output:
1 2 2
In the above example, count variable is a class attribute.
Instance Attribute: Instance Attributes are unique to each instance, [an instance is another name for an object]. Every object/instance has its own attribute and can be changed without affecting other instances.
Example:
Python3
class
Employee:
def
__init__[
self
]:
self
.name
=
'Gfg'
self
.salary
=
4000
def
show[
self
]:
print
[
self
.name]
print
[
self
.salary]
x
=
Employee[]
x.show[]
Output:
Gfg 4000
Now, Let’s see an example on properties:
1] Create Properties of a class using property[] function:
Syntax: property[fget, fset, fdel, doc]
Example:
Python3
class
gfg:
def
__init__[
self
, value]:
self
._value
=
value
def
getter[
self
]:
print
[
'Getting value'
]
return
self
._value
def
setter[
self
, value]:
print
[
'Setting value to '
+
value]
self
._value
=
value
def
deleter[
self
]:
print
[
'Deleting value'
]
del
self
._value
value
=
property
[getter, setter, deleter, ]
x
=
gfg[
'Happy Coding!'
]
print
[x.value]
x.value
=
'Hey Coder!'
del
x.value
Output:
Getting value Happy Coding! Setting value to Hey Coder! Deleting value
2]Create Properties of a class Using @property decorator:
We can apply the property function by using @property decorator. This is one of the built-in decorators. A decorator is simply a function that takes another function as an argument and adding to its behavior by wrapping it.
Example:
Python3
class
byDeco:
def
__init__[
self
, value]:
self
._value
=
value
@property
def
value[
self
]:
print
[
'Getting value'
]
return
self
._value
@value
.setter
def
value[
self
, value]:
print
[
'Setting value to '
+
value]
self
._value
=
value
@value
.deleter
def
value[
self
]:
print
[
'Deleting value'
]
del
self
._value
x
=
byDeco[
'happy Coding'
]
print
[x.value]
x.value
=
'Hey Coder!'
del
x.value
Output:
Getting value happy Coding Setting value to Hey Coder! Deleting value
Table of difference between Attribute V/s Property
Attributes are described by data variables for example like name, age, height etc. | Properties are special kind of attributes. |
Two types of attributes:
| It has getter, setter and delete methods like __get__, __set__ and __delete__ methods. |
Class attributes are defined in the class body parts usually at the top. | We can define getters, setters, and delete methods with the property[]function. |
Instance attribute are defined in the class body using self keyword usually it the __init__[] method. | If we just want to the read property, there is also a @property decorator which you can add above your method. |