On 26Jan2021 14:00, C W <tmrs...@gmail.com> wrote: >I'm a long time Matlab and R user working on data science. How do you >troubleshooting/debugging in Python? > >I ran into this impossible situation to debug: >class person: >def __init__(self, id, created_at, name, attend_date, distance): >"""Create a new `person`. >"""
Your mailer has removed all the indenting. See if it has a mode for code. Often just making sure all the code is itself indented will do, eg: some indented code here >I got an error message saying id was 'str', but expecting 'int'. There should have been a complete traceback with that error, showing which line triggered the exception and how it was called. Here, we don't know from your description what happened or where. >If this error was in R, I would have tried: >> self._id = 123 Well, provided "self" already existed, that would work in Python but tell you almost nothing, because any variable may reference a value of any type. (Python variables are not typed, but the values _are_.) >But, I can't do that here! What do I do? Do I HAVE TO instantiate an >object >first? Well, "self" is the instantiaited object. The __init__ function does more setup (completing what you might call "normal" instantiation). >It's not convenient if I have 10 of these objects around. I need to >instantiate 10 objects. Your environment isn't clear to me. >I know hardcore computer scientists would tell me about Python debugger. R >also has one, but nobody ever uses it. I don't find them user-friendly! Me either. Like grant, i fall into the "look at the stack trace and think a bit, then put in print() calls or similar to show me whether things are what I expect them to be when the code runs". I actually have a Computer Science degree, but I think there are definition those who like debuggers and those who tend not to. I'm in the latter camp. Preferences like that affact how you _choose_ to debug. Usually I have the code in a file in one window and a command line in another, and go: python my_code_file.py ... to test when debugging. Cheers, Cameron Simpson <c...@cskk.id.au> -- https://mail.python.org/mailman/listinfo/python-list