2016-08-17 1 views
0

どのようにこれを行うことができますか?私たちはどのようにjpypeはPythonで予約された名前のJavaのmehtod /変数にアクセスします

public Class Foo { String pass = "foo"; }

次のようにJavaで定義された変数を持っている場合、パスは予約キーワードであるため、すなわち、私はjpypeを経由して、これをアクセスすることができますか?私は getattr(Jpype.JClass(Foo)(), "pass")を試してみましたが、それはPythonのキーワードと競合する属性の名前パス

答えて

0

unfortunallyフィールドやメソッドがjpypeは、これらのメソッド/フィールドに対して最後に"_"を追加することを考え出した

+0

うーん、それは残念だ文書の願い。 Javaメソッド/フィールドを呼び出すためにjvmに直接文字列として名前を渡す方法があるかどうかを確認したいと考えました。公式documenation [リンク]に記載 –

+0

(https://pypi.python.org/pypi/JPype1-py3) 既知のバグ/制限(パッケージで)パッケージの外部 Javaクラスをインポートすることができません。 pythonキーワードと競合するフィールドまたはメソッドにアクセスできません。 JVMがサポートされていないため、JVMをシャットダウンしてから再起動することはできません。 いくつかのメソッドは "現在の"クラス/呼び出し側に依存しています。 Pythonコードから直接呼び出されるコールには現在のクラスがないため、これらのメソッドは機能しません。ユーザーマニュアルには、そのような既知の方法がすべてリストされています。 –

0

をアクセスすることはできません見つけることができませんそのソースコードで。だから、Jpype.JClass(「foo」という)によってアクセスすることができます。

をpass_それはどこか

+0

stackoverflowアンダースコアをフィルタリングするので、jpypeは名前の末尾にアンダースコアを付加し、pythonキーワードと競合します。 –

関連する問題