attribute error
Mike Meyer
mwm at mired.org
Thu Sep 29 16:04:09 EDT 2005
In <433C473B.9050901 at grads.ece.mcmaster.ca>, M.N.A.Smadi <smadim2 at grads.ece.mcmaster.ca> typed:
> This has nothing to do with how the argument is passed. It is prob
> something wrong with str.pop in my python because when i run python and type
> import os
> import string
> x = '1 2 3'
> x.pop()
>
> i get the following error
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> AttributeError: 'str' object has no attribute 'pop'
The only thing wrong with str.pop is that you're trying to invoke
it. The interpreter is telling you that string doesn't *have* a pop
method. The interpreter is right. Strings are immutable, so "pop"
doesn't make any sense for them.
<mike
>
> Mike Meyer wrote:
>
> >In <433C4402.6050408 at grads.ece.mcmaster.ca>, M.N.A.Smadi <smadim2 at grads.ece.mcmaster.ca> typed:
> >
> >
> >>HI;
> >>
> >>I am having the following error:
> >>
> >>AttributeError: 'str' object has no attribute 'pop'
> >>
> >>am using Python 2.3.4 and am importing the following libraries:
> >>
> >>import sys, os, inspect
> >>from Asterisk import Manager, BaseException, Config
> >>import Asterisk.Util
> >>
> >>The code being executed is:
> >> if command not in commands:
> >> raise ArgumentsError('invalid arguments.')
> >>
> >>
> >>
> >> if command == 'usage':
> >> return usage(argv[0], sys.stdout)
> >>
> >> manager = Manager.Manager(*Config.Config().get_connection())
> >>
> >> if command == 'actions':
> >> show_actions()
> >>
> >> if command == 'help':
> >> if len(argv) < 3:
> >> raise ArgumentsError('please specify an action.')
> >>
> >> show_actions(argv[2])
> >>
> >> elif command == 'action':
> >> if len(argv) < 3:
> >> raise ArgumentsError('please specify an action.')
> >>
> >> try:
> >> execute_action(manager, argv[2:])
> >> except TypeError, e:
> >> print "Bad arguments specified. Help for %s:" % (argv[2],)
> >> show_actions(argv[2])
> >>
> >> elif command == 'command':
> >> execute_action('command', argv[2])
> >>
> >>
> >
> >This should be execute_action('command', argv[2:]), with the ':' added.
> >
> > <mike
> >
> >
> >
> >>def execute_action(manager, argv):
> >> method_name = argv.pop(0).lower()
> >>
> >>
> >>
> >>but i always thought that something like this will be standard stuff.
> >>Any ideas?
> >>
> >>
> >>Mike Meyer wrote:
> >>
> >>
> >>
> >>>"M.N.A.Smadi" <smadim2 at grads.ece.mcmaster.ca> writes:
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>HI;
> >>>>
> >>>>I am having the following error. I am using someone else's code and
> >>>>all they are doing is pass an argv to a function then
> >>>>
> >>>>def execute_action(manager, argv):
> >>>> method_name = argv.pop(0).lower()
> >>>>
> >>>>
> >>>>and am getting this strange error.
> >>>>AttributeError: 'str' object has no attribute 'pop'
> >>>>
> >>>>am using Python 2.3.4 and am importing the following libraries:
> >>>>
> >>>>import sys, os, inspect
> >>>>
> >>>>
> >>>>from Asterisk import Manager, BaseException, Config
> >>>
> >>>
> >>>>import Asterisk.Util
> >>>>
> >>>>but i always thought that something like this will be standard stuff.
> >>>>Any ideas?
> >>>>
> >>>>
> >>>>
> >>>>
> >>>Yes - show us the rest of the code. execute_action is never called in
> >>>the snippets you posted, and it's pretty clear that it's being invoked
> >>>with the wrong thing as an argument. Can you provide a minimal working
> >>>(well, executable) code sample that generates the error message you
> >>>are getting?
> >>>
> >>>Oh yeah - post the full traceback as well.
> >>>
> >>> <mike
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
>
>
--
Mike Meyer <mwm at mired.org> http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.
More information about the Python-list
mailing list