Delphi 程序直接调用 Python 的函数

Delphi 程序员初学 Python 笔记 一直想学 Python 但一直没真正去摸索。入门书倒是买了几本也大概看了一下。但不真正动手写点程序,是没法入门的。作为熟悉 Delphi 编程的人,当然想在 Delphi 的程序里面调用 Python 的一大堆库的功能,比如现如今火爆的 AI 库。首先,学习 Python 需要一个编程工具,可能一般人用文本编辑器或者用 VSCode 的比较多。但作为熟悉 Delphi 的人,发现有一个开源工具 PythonScripter 非常好用。 阅读详情
AI摘要

本文讲述了Delphi程序员如何通过Python4Delphi框架调用Python函数,介绍了使用PythonEngine1加载Python环境并间接调用Python函数的过程,特别强调了无需预先声明即可动态调用Python函数的特性,以及可能涉及的数据类型转换问题。,

在本系列的第一篇博客文章:Delphi 程序员初学 Python 笔记-优快云博客

在这篇文章里面,我提到,一个 Python 的函数,我用 Delphi 无法直接调用它,所以我对它做了一个 Python 的包装。原因是,那是我第一次学习使用 Python4Delphi 这个控件。那时候要执行 Python 代码,我只会使用 PythonEngine1.ExecStrings(Python代码) 这样的方式。这样做,就是在 Delphi 的程序里面,加载了 Python 的环境,并在这个环境里面去执行了代码里面的可执行的部分。但如果代码里面有函数,而这个函数并没有 Python 代码去调用它,Python 环境里面也无法执行这个函数。

因此,如果 Delphi 的代码想要调用这个 Python 的函数,就需要使用一个 Python 的代码去调用这个函数,而 Delphi 仅仅是需要从这个调用函数的代码里面获得计算结果的返回值。

但是,在 Python4Delphi 的框架里面,使用 Delphi 的代码是可以直接去调用一个 Python 的函数的。为此我自己写了一个程序做一下测试。

测试用的 Python 代码:
def DoAddParams(a, b):
    return a + b + 3

调用这个 Python 代码的 Delphi 代码:
uses VarPyth;

procedure TForm2.Button1Click(Sender: TObject);
var
  OldControlWord: Word;
begin
  PythonEngine1.ExecStrings(Memo
Delphi 11必备指南:使用Git集成Python4Delphi的完整步骤 1)设置win32-bit选项。2)设置win64-bit选项。 阅读详情

相关推荐

Python图形用户界面设计-Delphi For Python高级开发教程

Delphi作为一个快速可视化跨平台原生本机开发工具和编程语言,是使用Python开发GUI图形用户界面最前沿、最高效、最有发展前途的技术,使用Delphi的VCL和FMX组件框架可以5倍的开发效率为Python开发跨平台支持Windows, Android, iOS, macOS, Linux的App应用。

Delphi开发局QQ群:32422310 4014

Python4Delphi 之用 Delphi 写 Python 模块

在 Delphi 程序和 Python 程序的交互,可以用 Delphi 实现一个 Python 模块,用 Delphi 实现这个模块的函数,然后在 Python 里面的代码来调用。实现这个功能的简单架构:1. PythonModule1 用来代表一个可以给 Python 调用的模块。2. Delphi 实现的函数,通过的方式成为 Python 的模块的函数。3. 被 Delphi 的 PythonEngine1 执行的 Python 代码,可以import这个模块并执行里面的函数。

pcplayer的博客 2402

Python4Delphi: 使用Delphi代码调用Python代码里面的类

1. 首先调用 PythonEngine1.ExecStrings 加载运行有这个 Python 类的 Python 代码;2. 使用 MainModule.类名() 的方式,直接就创建了 Python 类。在 Delphi 里面,Python 类创建的对象保存到一个 Variant 变量里面。3. 有了对象,就可以用【对象.方法()】的方式调用这个对象的方法了。这里需要注意,方法有没有参数都要加上括号。

pcplayer的博客 1565

Python4Delphi 安装使用注意

摘要 想要在 Delphi 程序里面使用 Python,在 Delphi 里面安装 Python4Delphi 这个控件,编译的 WINDOWS 程序可以调用 WINDOWS 里面安装的 Python。然后,WINDOWS 里面,Python 的安装需要注意。 注意事项 本文提到的 WINDOWS 是指 WIN 10. 如果你在 WINDOWS 的命令行(cmd.exe)或者 Power Shell 窗口里面,输入 Python 命令,它会弹出 Windows App Store 让你安装 Pyth

pcplayer的博客 5799

利用Python for Delphi扩展Delphi程序功能

Python语言因其简洁性和强大的库支持,已经成为开发者工具箱中的重要工具。随着应用程序复杂性的增加,Delphi开发者寻求引入Python来提升开发效率和项目的功能性。Python for Delphi(P4D)集成允许Delphi应用程序创建和管理Python引擎,实现Python代码的执行和管理。这一技术突破带来了新的开发可能,让Delphi开发者能够利用Python的丰富资源,同时维持Delphi高效、稳定的系统开发能力。

weixin_29323977的博客 1496

Linux系统centos7安装网卡驱动

有时候我们装完Centos或Ubuntu系统会发现没有网卡信息,说明网卡驱动不配置,所以我们要重新安装。 首先去服务器主板官网下载网卡驱动,注意32位和64位。 先查看网卡型号 lspci | grep -i ethernet 我的网卡型号是 00:1f.6 Ethernet controller: Intel Corporation Device 0d55。 网上一找,压根没找到这型号的网卡,别说驱动了。怀着试一试的心态,就安装i219-v系的网卡驱动,还别说,成功了。 针对i21...

wshc18的博客 2万+

Jmeter压测报告

账户分析压测报告 一、测试内容 本次测试是针对账户分析进行的压力测试,在账户分析查询接口中,只对用户资产查询接口进行压力测试,其中不包含用户签名校验功能。 二、测试方法 本次采用apache的开源测试工具jmeter,采用本地动态拼装请求数据并通过http协议GET方式发送每日盈亏查询请求。并采用1000个用户账号测试访问情况。...

qq_31108731的博客 6627

Windows下RISC-V开发环境搭建:xpack-riscv-none-elf-gcc安装配置全攻略

本文详细介绍了在Windows平台下搭建RISC-V开发环境的完整流程,重点讲解xpack-riscv-none-elf-gcc工具链的安装配置方法。从环境变量设置到VSCode集成开发环境搭建,涵盖汇编程序和C程序开发实践,为开发者提供一站式解决方案,助力快速掌握RISC-V架构开发技能。

weixin_26765287的博客 437

AIOps探索 | 如何用大模型构建高效运维知识及智能问答平台(1)

好久没有分享AIOps相关干货了,最近大模型这么火,而且我们有客户已经基于大模型构建了知识及智能问答平台,需要在运维领域结合使用场景进行应用。为此,楼主从头到尾声梳理了一遍大模型在运维领域构建知识及智能问答平台的应用场景、技术实现,总结出来供大家一同探索,希望对大家理解和运用大模型有一定帮助~

智能运维及数据中台探索 2810

RK3568平台YOLO11模型部署实战:从环境搭建、模型转换到板端性能优化全解析

摘要: 本文详细介绍了在RK3568平台上从零部署YOLO11模型的完整流程。主要内容包括:1) 基于Conda搭建Python 3.8开发环境并安装RKNN-Toolkit2工具链;2) 使用LabelImg工具标注数据并构建YOLO格式数据集;3) 基于Ultralytics框架进行YOLO11模型训练及参数优化;4) 实现PyTorch→ONNX→RKNN的完整模型转换链。文章特别针对RK3568平台的NPU特性提供了关键参数配置建议,并分享了实际开发中的经验总结,最终可达到30FPS的稳定推理性能。

LXY_LOVE36的博客 281

把开源 Skills 集成到 LangGraph 项目

1. 定义智能体状态(必须包含 messages,其他字段按需扩展)messages: List[HumanMessage | AIMessage | ToolMessage] # 消息流(核心)skill_output: Optional[str] # 存储 Skill 执行结果next_node: str # 控制流程跳转# 2. 定义智能体决策节点(决定是否调用 Skill)"""智能体决策逻辑:根据用户输入判断是否调用开源 Skill"""# 获取最后一条用户消息。

lpfasd123的博客 900

【CT/电镜 重建教程 1.1】层析成像的精确实空间迭代重建算法(RESIRE)

在此,我们报告了RESIRE算法的发展用于准确的断层重建。与实空间迭代算法相比,RESIRE使用傅里叶切片定理或Radon变换作为正向投影,使用线性变换作为反向投影,两者都具有高精度。与EST和GENFIRE相比,RESIRE是一种实空间迭代算法,可以在并行计算中实现快速运行时间。

2401_87064292的博客 1062

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 用 Delphi 程序调用 Python 代码画曲线图 -- 数据来自 Delphi 程序
下一篇: Python4Delphi: 使用Delphi代码调用Python代码里面的类
pcplayer
博客等级 码龄26年 633粉丝 284原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值