使用 JSR-223 从 Jython 脚本获取数据

2023-12-07

我正在使用 Jython 2.5.1 和 JSR-223(即 javax.script 包),并且我希望返回 Python 脚本的最后一行。例如,在评估此脚本后:

class Multiplier:

  def multiply(self, x, y):
    return x * y

Multiplier().multiply(5, 7)

我应该返回 35,但我得到的是 null。另一方面,它与其他测试一起使用:

5 * 7

我究竟做错了什么?

这是 Java 代码:

public static void main(String[] args) throws Exception {
    ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");

    FileReader f = new FileReader("Multiplier.py");
    Object result = engine.eval(f);
    //assert(result == 35);
}

PS:它与 JRuby、Groovy 和 Rhino 一起工作得很好,即总是返回最后一行。

提前致谢。


这是一个 Python 语言问题,而不是 Jython 或 JSR 223 问题。 Python 区分表达式(有值)和语句(没有值)。您传递的脚本是一个声明。如果您传递一个表达式,它就会有一个值。

您在 Ruby 和 JavaScript 中看到不同的原因是复合语句具有最后评估的语句的值。例如,比较 Ruby:

>> (2 ; 3) + 5
=> 8
>> (x = 5) + 7
=> 12

使用Python:

>>> (2 ; 3) + 5
  File "<stdin>", line 1
    (2 ; 3) + 5
       ^
SyntaxError: invalid syntax
>>> (x = 5) + 7
  File "<stdin>", line 1
    (x = 5) + 7
       ^
SyntaxError: invalid syntax

JavaScript 似乎介于两者之间。与 Ruby 一样,赋值的计算结果是分配的值。但是,返回块中最后一个计算的语句,但不能用作表达式的一部分:

> { 2 ; 3 }
3
> { 2 ; 3 } + 5
5
> (x = 5) + 7
12
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JSR-223 从 Jython 脚本获取数据 的相关文章

  • 向 Python 2.6 添加 SSL 支持

    我尝试使用sslPython 2 6 中的模块 但我被告知它不可用 安装OpenSSL后 我重新编译2 6 但问题仍然存在 有什么建议么 您安装了 OpenSSL 开发库吗 我必须安装openssl devel例如 在 CentOS 上 在
  • 在 JSON 对象中强制执行非空字段

    我们的 REST API 接收一些 JSON 对象输入 其中某些字段要求不为空 这些可以是字符串 整数 甚至可以是其他一些类实例作为参考 我们正在尝试找到一种方法来强制这些字段不为空 而不是在 API 中进行空检查的正确方法 当前的 if
  • 如何使用 msgpack 进行读写?

    如何序列化 反序列化字典data with msgpack http msgpack org The Python 文档 http msgpack python readthedocs io en latest badge latest似乎
  • 管理文件字段当前 url 不正确

    在 Django 管理中 只要有 FileField 编辑页面上就会有一个 当前 框 其中包含指向当前文件的超链接 但是 此链接会附加到当前页面 url 因此会导致 404 因为不存在这样的页面 例如 http 127 0 0 1 8000
  • 使用antlr4获取预处理器行并解析C代码

    我正在使用 Antlr4 来解析 C 代码 并使用以下语法来解析 链接到 C g4 https github com antlr grammars v4 blob master c C g4 上面的语法默认不提供任何解析规则来获取预处理器语
  • 如何减少 JSF 中的 javax.faces.ViewState

    减少 JSF 中视图状态隐藏字段大小的最佳方法是什么 我注意到我的视图状态约为 40k 这会在每次请求和响应时下降到客户端并返回到服务器 特别是到达服务器时 这对用户来说会显着减慢 我的环境 JSF 1 2 MyFaces Tomcat T
  • Flask SQLAlchemy 与 MyPy - 模型类型错误

    我遇到了以下组合问题flask sqlalchemy and mypy 当我定义一个新的 ORM 对象时 例如 class Foo db Model pass where db是使用创建的数据库SQL炼金术应用于flask app mypy
  • JSP 作为电子邮件模板

    有没有办法发送 MIME 电子邮件 其中电子邮件正文源自 JSP 我需要使用 Javamail 发送一封电子邮件 其中包含一个表格 我认为如果我可以使用 JSP 来完成所有格式设置和布局 将会很方便 在这个线程中 Java 电子邮件模板的建
  • 日志记录在 Android 设备上实际上有什么作用?

    我一直在 Android 示例中看到这样的代码 try catch Exception e Log e Error e getMessage 什么是Log e实际上在物理设备上做什么 它进入系统日志 开发人员可以通过 SDK 工具访问该日志
  • 获取证书链

    我正在 Java 中使用 X509 证书 给定一个证书 是否可以在签名层次结构中找到所有其他证书 直到找到根证书 我有一个证书文件 带有 cer扩展名 我想提取父签名证书 我想继续查找该证书的父证书 直到获得最终的自签名根证书 我已经检查了
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 为什么jdk中没有ConcurrentLinkedHashMap类?

    这个问题直接接着问从我之前的问题来看 https stackoverflow com q 12299731 1527084 我想我的第二个问题的答案是否定的 所以我想了解为什么 java util concurrent 包中没有 Concu
  • Android - 保持用户登录状态

    我正在尝试使用 PHP 和 MySQLi for Android 进行登录 我不明白的是如何保持用户登录状态 我看到一个简单的教程 其中有人使用 SQLite 来保护信息 但我不知道这是否真的安全 如何保存用户信息以保持用户登录状态 谢谢
  • Spring Boot如何加入自定义查询

    我需要创建一个端点 该端点按州返回人口普查数据以及城市列表 我目前使用两个端点来获取此数据 目前回应 自定义查询一 censusByState id 1 code 11 name Rond nia statePopulation 18152
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • 在 Tensorflow 2.0 中的简单 LSTM 层之上添加 Attention

    我有一个由一个 LSTM 和两个 Dense 层组成的简单网络 如下所示 model tf keras Sequential model add layers LSTM 20 input shape train X shape 1 trai
  • 如果所有类不在同一个包中,Spring @autowired 不起作用

    我有四个包裹 com spring org Files HomeController java com spring org dao Files SubscriberDao java SubscriberDaoImpl java com s
  • 如何动态创建 Luigi 任务

    我正在为 Luigi Tasks 构建一个包装器 但遇到了一个障碍Register http luigi readthedocs io en stable modules luigi task register html Register该
  • 在Python中从列表中获取n个项目组的惯用方法? [复制]

    这个问题在这里已经有答案了 给定一个列表 A 1 2 3 4 5 6 是否有任何惯用的 Pythonic 方式来迭代它 就好像它是 B 1 2 3 4 5 6 除了索引之外 这感觉像是 C 的遗留物 for a1 a2 in A i A i
  • 按字母顺序对对象的 ArrayList 进行排序

    我必须创建一个方法来排序数组列表根据电子邮件按字母顺序排列对象 然后打印排序后的数组 我在排序时遇到麻烦的部分 我已经研究过并尝试使用Collections sort vehiclearray 但这对我不起作用 我是因为我需要一个叫做比较器

随机推荐

  • 如何使用vbs或批处理脚本在特定时间关闭电脑

    我想要一个脚本放在启动文件夹中并且不使用任务计划程序 If time gt 22 00 hrs shutdown if startup after 10pm Shutdown s f break While time 22 00hrs lo
  • 使用 JavaFx Scene Builder 2.0 “全屏”同时显示两个窗口

    我正在开发一个迷你应用程序 我需要在全屏上同时向用户显示 2 个窗口 该应用程序将为双屏用户制作 我正在 NetBeans 8 0 1 上使用 JavaFx Scene Builder 2 0 我尝试了这个 但只有第二个窗口显示在全屏上 p
  • 当另一个表中值为 null 时重定向到页面 laravel

    如果我的additional infos 表包含一些在本例中为空的内容 联系人 姓名和地址 我会尝试将用户重定向到另一个页面 我现在已经做了类似的事情 但即使联系人 姓名和地址已填写 它仍然将我重定向到另一个页面 有人能帮我吗 提前致谢 p
  • 在 R 循环中命名文件

    我有多个音频文件 它们保存在我的工作目录中的几个子文件夹中 我有一个循环 它读取每个文件的第一分钟 然后将它们保存为新文件 library tuneR dir create New files FILES lt list files PAT
  • 在循环中调用 utl_file.put 时 UTL_FILE.WRITE_ERROR

    我的 PL SQL 过程中有以下代码 我在 API XXX put 中调用了它 它调用utl file put 在 while 循环中 l xmldoc 是来自 getReportXML 函数的 CLOB 该函数返回 xml clob 我编
  • Android 首选项:当用户未使用首选项屏幕时如何加载默认值?

    我正在使用 PreferenceActivity 让用户设置一些值 我正在向它提供具有定义的首选项的 xml 文件 我已经设置了所有android defaultValue 对于他们来说 当我启动应用程序时 我需要首选项 或者如果尚未手动设
  • 简化自然色的漂亮印刷

    假设我编写了一个用于反转列表的函数 我想用value命令 只是为了向自己保证我可能做对了 但输出看起来很糟糕 value reverse 1 8 3 gt 1 1 1 1 1 1 1 1 1 1 1 1 a list 如果我告诉伊莎贝尔将这
  • attr 作为 css 选择器中的属性[重复]

    这个问题在这里已经有答案了 可能的重复 按样式属性的 CSS 选择器 html div div 在CSS中我想使用这个家庭值 例子 div font family attr data family Family 可以是任何字符串 如何让它发
  • 将 TabItem 添加到现有 TabControl WPF/MVVM

    I have TabControl已经定义了一些TabItems on XAML 我需要创建新的TabItems并添加到其中 如果我使用ItemSource我得到一个例外Items collection must be empty befo
  • 我可以在 PHP 中使用运算符作为函数回调吗?

    假设我有以下功能 function mul return array reduce func get args 是否可以使用 运算符作为回调函数 还有其他办法吗 在这种特定情况下 使用array product function mul r
  • 更改 EF Core 中的 MigrationsHistoryTable 列名称

    我在 EF Core 数据库中有一个标准化的所有表和列名称 以使用 Snake case 我能够更改迁移历史记录表名称和架构以匹配数据库的其余部分 但我无法找到更改列的方法MigrationId to migration id and Pr
  • Sleep() 或 sleep() 的准确度如何

    我正在尝试模拟按下键和按下键的动作 例如 2638 毫秒 SendMessage hWnd WM KEYDOWN keyCode 0 Sleep 2638 SendMessage hWnd WM KEYUP keyCode 0 你怎么知道它
  • golang中解析日期

    请帮我解析日期 例如2018 12 17 12 55 50 0300在戈兰 我正在尝试布局 layout 2006 01 02 15 04 05 0000 dateString 2018 12 17 12 55 50 0300 t err
  • 错误 310(net::ERR_TOO_MANY_REDIRECTS):

    这是什么错误 Error 310 net ERR TOO MANY REDIRECTS There were too many redirects 我使用 PHP CodeIgniter 和库简单登录安全 这是我的代码 if this gt
  • Rails 3 Action Mailer 未初始化常量

    我正在尝试使用 actionmailer 在发布新评论时通知我 但我不断收到错误 uninitialized constant CommentsController CommentMailer 该评论已添加到我的数据库中并且可以查看 我也在
  • Access SQL 中的 Select Case 等效项是什么?

    我有一个查询 其中包含名为的字段期初余额 and 佣金 我想计算值佣金基于期初余额 与此类似Select CaseAccess VBA 中的块 Select Case OpeningBalance Case 0 To 5000 commis
  • Genymotion 初始化引擎:IntelliJ 中失败

    我下载了 Genymotion 和 Genymotion IntelliJ 插件 我在 Intellij 中设置了 Genymotion 路径 指示 https cloud genymotion com page doc collapse
  • cmis或web脚本使用?

    我想使用 alfresco 和 activiti 工作流引擎构建一个 JavaEE GED 应用程序 用于管理和监控组织的邮件 信件 传真 邮件等 由于我是 alfresco 的新手 我想知道在我的情况下与 alfresco 进行通信的最佳
  • 将自定义图像显示为 geom_point [重复]

    这个问题在这里已经有答案了 是否可以在 R ggplot 中将自定义图像 例如 png 格式 显示为 geom point library png pic1 lt readPNG pic1 png png Heatmap png units
  • 使用 JSR-223 从 Jython 脚本获取数据

    我正在使用 Jython 2 5 1 和 JSR 223 即 javax script 包 并且我希望返回 Python 脚本的最后一行 例如 在评估此脚本后 class Multiplier def multiply self x y r