
可以通过一个 Python 函数同时生成 CLI, Qt GUI 和 Dash web app 。只需要把函数参数进行类型与范围标记即可,比如:
from oneface import one, Arg @one def bmi(name: Arg(str), height: Arg(float, [100, 250]) = 160, weight: Arg(float, [0, 300]) = 50.0): BMI = weight / (height / 100) ** 2 print(f"Hi {name}. Your BMI is: {BMI}") return BMI # run cli bmi.cli() # or run qt_gui bmi.qt_gui() # or run dash web app bmi.dash_app() 上述代码能够产生三种不同的接口:
| CLI | Qt GUI | Dash web app |
|---|---|---|
![]() | ![]() | ![]() |
以一种非常简单的方式为程序提供接口,比如把函数直接变成 Web app ,提供给不会跑命令行的人使用。局限性是只适合创建简单(没有交互状态)的界面。
1 JeffersonQin 2022-03-21 17:57:41 +08:00 有个建议,感觉这个项目想法很好,但是如果用 GPL 授权估计会劝退很多人 .... 比方说我 |
2 l0wkey 2022-03-21 18:17:37 +08:00 via iPhone 支持图片或文件选择操作不 |
3 lzs5240 2022-03-21 18:20:18 +08:00 Good |
5 Nanguage OP @JeffersonQin 我会考虑一下的,习惯用 GPL 了 |
7 ipwx 2022-03-22 10:17:36 +08:00 提个小建议:类型声明用 Arg 挺不友好。。。 建议考虑用 dataclass 包一层,或者参考 Pydantic 。尽量用内置变量 比如 int 和默认值推断你的界面 |