android - 如何继承MonkeyDevice?

标签 android python inheritance monkeyrunner

我想扩展 monkeyrunner API 的 MonkeyDevice 类。 我的派生类如下所示。

from com.android.monkeyrunner import MonkeyDevice, MonkeyRunner

class TestDevice(MonkeyDevice):
    def __init__(self, serial=None):
        MonkeyDevice.__init__(self)
        self = MonkeyRunner.waitForConnection(deviceId=serial) 
        self.serial = serial

当我从另一个模块调用 test_dev = TestDevice(serial) 时,出现以下错误:

    test_dev = TestDevice(serial)
TypeError: _new_impl(): 1st arg can't be coerced to com.android.monkeyrunner.core.IMonkeyDevice

我做错了什么?

提前致谢!

最佳答案

看来您不能在不调用工厂函数 waitForConnection 的情况下直接初始化 MonkeyDevice 实例。因此,您需要在 __new__() 函数中分配 self,以便 MonkeyDevice 将该实例识别为继承自 IMonkeyDevice 在调用它之前是 __init__

例子:

class TestDevice(MonkeyDevice):
    def __new__(self, serial=None):
        return MonkeyRunner.waitForConnection(deviceId=serial) 
    def __init__(self):
        MonkeyDevice.__init__(self)

关于android - 如何继承MonkeyDevice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7433433/

相关文章:

android - 使用 Android 启动 Debian

Android Library - 确定正在使用哪个包

python - (Spring MVC)-like 框架在 python 中

python - 子流程模块工作但不完全工作

android - onClickListener(按钮)使用 Fragments 切换 ViewPager 的 View

android - 扩展 AppCompatActivity 时 fragment 返回堆栈不起作用

python - pandas DataFrame combine_first 方法将 bool 值转换为 float

c++ - 如何在多态性中强制隐式转换?

java - 如何创建实现两个通用接口(interface)(不修改这些类)的许多类的实例的集合/列表?

scala - Akka调度器继承