How do you debug in Python? Coming from a Matlab and R user. I'm already aware of pdb.

C W tmrsg11 at gmail.com
Wed Jan 27 00:19:35 EST 2021


Hi Michael,
Here's the code again, class should be called PERSONDatabase, misspelled
earlier:
class PERSONDatabase:
   def __init__(self, id, created_at, name, attend_date, distance):
      self._id = id
      self.created_at = created_at
      self.name= name
      self.attend_date = attend_date
      self.distance = distance

   @classmethod
   def get_person(self, employee):
      return PERSONDatabase(employee['created_at'],
                                                employee['id'],
                                                employee['name'],
                                                employee['attend_date'],
                                                employee['distance'])

The PERSONDatabase class is called from main. This is the trace back I got
from the VS code:

Traceback (most recent call last):
   File "/Users/Mike/Documents/Mike/main.py", line 95, in <module>
      main()
   File "/Users/Mike/Documents/Mike/main.py", line 86, in main
      args = get_feed()
   File "/Users/Mike/DocumentsMike/main.py", line 32, in get_feed
      result = [PERSONatabase.get_person(raw_person) for raw_neo in
raw_objects]
   File "/Users/Mike/Documents/Mike/main.py", line 32, in <listcomp>
      result = [NEODatabase.get_person(raw_person) for raw_neo in
raw_objects]
   File "/Users/Mike/Documents/Mike/database.py", line 24, in get_person
      return PERSONDatabase(person['created_at'],
KeyError: 'created_at'

Thank you very much!

On Wed, Jan 27, 2021 at 12:10 AM Michael Torrie <torriem at gmail.com> wrote:

> On 1/26/21 8:37 PM, C W wrote:
> > I have a naive question. How do I use traceback or trace the stack? In
> > particular, I'm using VS Code with Python interactive console.
>
> Show us the traceback here and we can help you interpret it.  Copy and
> paste it from the VS Code console.
>
> > Say, I want to print the value of employee['name']. Can I do it?
>
> Yes I would think so.
>
> > My understanding is that these classes are just "skeletons". I must
> > create an instance, assign values, then test?
>
> Can't you just do something like this?
>
> class NEODatabase:
>     def __init__(self, id, created_at, name, attend_date, distance):
>         self._id = id
>         self.created_at = created_at
>         self.name = name
>         self.attend_date = attend_date
>         self.distance = distance
>
>     @classmethod
>     def get_person(self, employee):
>         print (employee['name'])
>
>         return PERSONDatabase(employee['created_at'],
>                               employee['id'],
>                               employee['name'],
>                               employee['attend_date'],
>                               employee['distance'])
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>


More information about the Python-list mailing list