importantin the below codethe mathematician uses the attribute 'radiusdirectly by changing it to ' radius expansion( radius)at line then the new radius is used to calculate the perimeter at line in the other wordvalue of radius is changed in the dictionary itselfand then the method perimeter(is used for calculation such access to attributes is available in python onlywhereas other languages java and +etc uses the concept of data hiding (using private and protected variableand the attributes can not be directly accessed these languages provide some get and set method to access and modify the attributesi we can make local copy of the variable for further calculationwhereas in pythonthe value is changed in the dictionary itself data hiding is required in +and java etc as direct access can be serious problem there and can not be resolved in pythondata is not hidden from user and we have various methods to handle all kind of situations as shown in this listing accessing the class attribute directly mathematician py user- using ring py for mathematical analysis from random import randomseed from pythonic import ring def calc_avg_area( = seed_value= )seed for random number generator seed(seed_value random radius rings [ring(radius=random()for in range( ) total for in ringstotal + area(print values for each iteration print("% % % ( radiusr area()total)avg_area sum([ area(for in rings])/ return avg_area def expansion(radius= expansion= )radius *expansion times radius expansion due to heat return radius def main()generate 'nrings avg_area calc_avg_area( = print("\naverage area for ={ is /{ { }format(navg_area) radii [ list of radius rings [ring(radius=rfor in radiicreate object of different radius for in ringsprint("radius:" radiusprint("perimeter at room temperature% perimeter()radius after expansion radius expansion( radiusmodifying the attribute of the class print("perimeter after heating:% perimeter() if __name__ ='__main__'main(following is the output of above code no data hiding in python