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