In <[EMAIL PROTECTED]>, M.N.A.Smadi <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>, M.N.A.Smadi <[EMAIL PROTECTED]> 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" <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list