0

我正在使用 SL4A 在 Android 上运行 Python。我有一个脚本来计算如下所示的平均值:

import android
droid = android.Android()
var1 = 10
var2 = 20
var3 = 30
average = float((var1+var2+var3)/3)
droid.makeToast('Average:'+str(average))
f=open('/data/data/com.example.devicecommunication/files/result.txt','w')
f.write(str(average))
f.close()

我的要求是向droidnamed添加一个方法stop,这样我就可以在那里定义自己的逻辑。这可能吗?

4

2 回答 2

1

您可以在 sl4a 中使用 Python 定义类和方法,如下所示:

class MyDroid():
  def stop(self):
    return "I stopped"

这是你要找的吗?

您在 SL4A 的 Wiki 页面上有很多示例(教程、API 参考、概述):这里

您可以定义一个全局变量,用于在循环中运行程序,当条件不再满足时,您调用stop它使您退出循环并结束程序。

类似的东西会起作用:

runScript = True

def stop():
  global runSCript
  runScript = False

while runScript:
  --do actions
  if --condition-- :
    stop()

我认为这不是 Python 的最佳实践,但它有效..

于 2013-06-26T11:02:41.667 回答
0

您可以将任何您喜欢的对象绑定到droid对象...

droid.stop = lambda: 1
print(droid.stop()) # prints 1

目前尚不清楚您想做什么。您发布的脚本对方法没有明显用途stop。您可以执行以下操作,但我不确定您为什么会这样做:

def stop():
    import sys
    sys.exit()

droid.stop = stop

您需要更详细地解释您要解决的问题。

于 2013-09-26T13:46:43.827 回答