我查看了Jython.org上的Jython书,并仔细阅读了互联网上的一些答案,但我没有看到任何暗示以下内容(我觉得很奇怪)的行为。我在Eclipse 3.6.1中使用PyDev 1.5.7和Jython 2.5.3进行此操作。
当执行self.val = val时,从具有setter的Java接口继承的Jython类是否会自动调用setVal?
这是Java界面:
package com.me.mypackage
import org.python.core.PyDictionary;
public interface MyInterface {
public double getMaxBW();
public boolean setMaxBW(double bw);
}
这是Jython类:
from com.me.mypackage import MyInterface
class MyClass(MyInterface):
def __init__(self, maxBW):
self.maxBW = maxBW
def setMaxBW(self, maxBW):
self.maxBW = maxBW
def getMaxBW(self):
return self.maxBW
当我在__init__函数中实例化类时:
由于这种无限递归,我在达到最大递归深度后得到一个RuntimeError。
有人认为这是一个漂亮的新式Python类正在做的事情(我的大部分时间都花在旧式类上)但纯粹的Jython(在Eclipse中或从命令行),不从Java接口继承。我没有尝试过Eclipse之外的接口继承。
现在我重申我的初步问题但是在我的代码的上下文中:当self.maxBW = maxBW被执行时,是否继承带有setter的Java接口的Jython类会自动调用setMaxBW?