以下は私のJavaコードです:
public void testPySet() {
final PythonInterpreter interpreter = new PythonInterpreter();
final String userCode = "def test(x):\n\tprint(x)\n\tx.add(\"d\")\n\treturn x";
interpreter.exec(userCode);
final PyObject method = interpreter.get("test");
final PySet set = new PySet(PyString.TYPE);
set.add("a");
set.add("b");
set.add("c");
final PyObject result = method.__call__(set);
System.out.println(result);
}
実行すると、次のエラー メッセージが表示されます。
Traceback (most recent call last):
File "<string>", line 3, in test
AttributeError: 'str' object has no attribute 'add'
)を削除すると、x.add(\"d\"
正常に実行されます。
PySet
オブジェクトがオブジェクトとして認識されるのは非常に奇妙ですstr
。
誰かがたまたま理由を知っていますか?