Re: Unsubscriptable object when using Exec

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Chris Rebert

    Re: Unsubscriptable object when using Exec

    On Fri, Nov 14, 2008 at 10:40 AM, Indian <write2abdul@gm ail.comwrote:
    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...

    >
    What am i doing wrong in the class?Any thought on this would be helpful :)
    >
    Thanks in Advance
    >
    --

    >
Working...