On 22-May-08, at 3:14 PM, g sobers wrote:

hey!

Following is a small PyS60 script. The error seems related to basic syntax - "state" in keys() is not recognized although defined globally.

Would appreciate assistance.

=============================================
import appuifw, key_codes, e32, telephone
state = None

def keys(event):
   if event['keycode'] == key_codes.EKeyYes:
     appuifw.note(u"Doesn't Matter")
elif (event['keycode'] == key_codes.EKeyYes) and (state == telephone.EStatusConnected):
     appuifw.note(u"Yes was pressed and call active")

def cb_calling(args):
   state = args[0]

def quit():
   app_lock.signal()

telephone.call_state(cb_calling)
canvas = appuifw.Canvas(event_callback = keys)
appuifw.app.body = canvas
appuifw.app.exit_key_handler = quit
app_lock = e32.Ao_lock()
app_lock.wait()
==============================================

Best,
wirefree

See the code below

>>> state = 99

>>> def foo(vars):
...     state = vars[0]
...
>>> foo([1,2])
>>> state
99
#------ this is what is happening to your code
# so... try this...
>>> def foo(vars):
...   global state
...   state = vars[0]
...
>>> foo([1,2])
>>> state
1
>>>

You have declare state as "global" inside the function.
By default the scope of the variable is local.

_______________________________________________
BangPypers mailing list
BangPypers@python.org
http://mail.python.org/mailman/listinfo/bangpypers

Reply via email to