In c++ instance variables are private by default,in Python variables are public by default 
i have two questions regarding the same:-
1: why Python have all the members are public by default?
2: People say you should  your member data should be private
   what if i make my data to be public?
   what are the disadvantages of this approch?
   why it is a bad design?
It's really a question of language design philosophies. I favour the Python camp so might come down a little heavy handedly on the C++ style but the bottom line is that in C++ it's possible to forcibly prevent users of your class from accessing certain internal parts. 
In Python, it's a matter of convention and stating that it's internal. Some applications might want to access the internal member for non-malignant purposes (eg. documentation generators). Some users who know what they're doing might want to do the same. People who want to shoot themselves in the foot twiddling with the internal details are not protected from suicide. 
Like Dennis said "Anybody can just come along and tack something onto the end, or overwrite your null terminator". Python treats the user like an adult and expects her to take care of herself.  C++ protects the user as one would a child.
what if i keep my class members are public?