Changing Class Members in Python
Last Updated :
14 Dec, 2021
In the previous fact, we have seen that Python doesn’t have the static keyword. All variables that are assigned a value in the class declaration are class variables.
We should be careful when changing the value of a class variable. If we try to change a class variable using an object, a new instance (or non-static) variable for that particular object is created and this variable shadows the class variables. Below is a Python program to demonstrate the same.
Python3
class CSStudent:
stream = 'cse'
def __init__( self , name, roll):
self .name = name
self .roll = roll
a = CSStudent( "Geek" , 1 )
b = CSStudent( "Nerd" , 2 )
print ( "Initially" )
print ( "a.stream =" , a.stream )
print ( "b.stream =" , b.stream )
a.stream = "ece"
print ( "\nAfter changing a.stream" )
print ( "a.stream =" , a.stream )
print ( "b.stream =" , b.stream )
|
Output:
Initially
a.stream = cse
b.stream = cse
After changing a.stream
a.stream = ece
b.stream = cse
We should change class variables using class names only.
Python3
class CSStudent:
stream = 'cse'
def __init__( self , name, roll):
self .name = name
self .roll = roll
a = CSStudent( "check" , 3 )
print "a.stream =" , a.stream
CSStudent.stream = "mec"
print "\nClass variable changes to mec"
b = CSStudent( "carter" , 4 )
print "\nValue of variable steam for each object"
print "a.stream =" , a.stream
print "b.stream =" , b.stream
|
Output:
a.stream = cse
Class variable changes to mec
Value of variable steam for each object
a.stream = mec
b.stream = mec
Share your thoughts in the comments
Please Login to comment...