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?
I can't comment on Python, but in C++, structs provide public access by default.  
The primary reason you want a private part of your class is that, without one, it is impossible to guarantee your invariants are satisfied.  If you have a string class, for instance, that is supposed to keep track of the length of the string, you need to be able to track insertions. But if the underlying char* member is public, you can't do that.  Anybody can just come along and tack something onto the end, or overwrite your null terminator, or call delete[] on it, or whatever.  When you call your length() member, you just have to hope for the best.
what if i keep my class members are public?