【发布时间】:2019-06-02 14:19:33
【问题描述】:
下面的代码示例来自 BeeWare 套件示例。 (https://github.com/eliasdorneles/drawingapp-voc/blob/master/drawingapp/app.py)
implements=android.view.View[OnClickListener] 这个表达式是什么意思?应该有(一个列表)基类。是我无法理解的框架或标准 python 的一些不兼容的特殊语法(并且从文档中丢失)?
此外,我们在这里使用的是OnClickListener,它永远不会被导入。在 android.Constants.OnClickListener 之类的符号之前没有通配符导入 (*) 和模块前缀或类似的东西。在这种情况下,Python 解释器如何找到 OnClickListener 值?
import android
from android.widget import LinearLayout, TextView, Button
import android.content.Context
from android.graphics import Bitmap, Canvas, Color, Paint, Path, PorterDuff
from android.view import MotionEvent, Gravity
import android.view
class ButtonClick(implements=android.view.View[OnClickListener]):
def __init__(self, callback, *args, **kwargs):
self.callback = callback
'''
【问题讨论】:
-
在自述文件中说这个 python 代码被编译成 Java。所以我相信代码永远不应该在标准解释器上运行,实际上会引发异常。
-
Python 的class definition syntax 让您可以像使用基类一样使用
keyword=value条目。默认情况下metaclass=...是有意义的,当使用__init_subclass__时,其他此类关键字参数将传递给该方法。据推测,BeeWare 套件依赖于该语法。
标签: python import python-import beeware voc