View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
Attributes of a class are function objects that define corresponding methods of its instances. They are used to implement access controls of the
classes.
Attributes of a class can also be accessed using the following built-in methods and functions :
- getattr[] – This function is used to access the attribute of object.
- hasattr[] – This function is used to check if an attribute exist or not.
- setattr[] – This function is used to set an attribute. If the attribute does not exist, then it would be created.
- delattr[] – This function is used to delete an attribute. If you are accessing the attribute after deleting it raises error “class has no attribute”.
The following methods are explained with the example given below :
class
emp:
name
=
'Harsh'
salary
=
'25000'
def
show[
self
]:
print
[
self
.name]
print
[
self
.salary]
e1
=
emp[]
print
[
getattr
[e1,
'name'
]]
print
[
hasattr
[e1,
'name'
]]
setattr
[e1,
'height'
,
152
]
print
[
getattr
[e1,
'height'
]]
delattr
[emp,
'salary'
]
Output :
Harsh True 152
Static methods : A static method is a method[member function] that don’t use argument self at all. To declare a static method, proceed it with the statement “@staticmethod”.
class
test:
@staticmethod
def
square[x]:
test.result
=
x
*
x
t1
=
test[]
t2
=
test[]
t1.square[
2
]
print
[t1.result]
t2.square[
3
]
print
[t2.result]
print
[t1.result]
Output :
4 9 9
Accessing attributes and methods of one class in another class
Accessing attributes
and methods of one class in another class is done by passing the object of one class to another.
Explained with the example given below :
class
ClassA[]:
def
__init__[
self
]:
self
.var1
=
1
self
.var2
=
2
def
methodA[
self
]:
self
.var1
=
self
.var1
+
self
.var2
return
self
.var1
class
ClassB[ClassA]:
def
__init__[
self
, class_a]:
self
.var1
=
class_a.var1
self
.var2
=
class_a.var2
object1
=
ClassA[]
summ
=
object1.methodA[]
print
[summ]
object2
=
ClassB[object1]
print
[ object2.var1]
print
[object2.var2]
Output :
3 3 2