On Fri, Nov 14, 2008 at 10:40 AM, Indian <[EMAIL PROTECTED]> wrote: > Hi Friends > > I'm getting the TypeError Unsubscriptable object when using Exec in a class > > Here's the example > > class Fake(object): > def __init__(self, reg): > self._reg = reg > > def OpenKey(self, rootkey, path): > open_key = self._reg > path_string='[\'HKLM\']' > for key in path.split('\\'): > path_string += '[\'%s\']'%key > a='d=open_key%s'%path_string > exec(a) > return d > > When i create a claassobject and call the method Openkey i get the above > error but it works fine in the below example without class > > def OpenKey(rootkey, path, reg): > open_key = reg > path_string='[\'HKLM\']' > for key in path.split('\\'): > path_string += '[\'%s\']'%key > a='d=open_key%s'%path_string > print a > exec(a) > return d
You don't need and shouldn't be using `exec` here. It appears as though you're just doing the following in a much more obtuse and unnecessarily complicated manner: def OpenKey(rootkey, path, reg): open_key = reg['HKLM'] for key in path.split('\\'): open_key = open_key[key] return open_key Lesson: Don't use `exec`. More importantly, what led you to think you needed to use it here in the first place? Cheers, Chris -- Follow the path of the Iguana... http://rebertia.com > > What am i doing wrong in the class?Any thought on this would be helpful :) > > Thanks in Advance > > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list