为什么会有这种繁琐冗长的命令输入方式

1 天前
 shinsekai

在 vtk 中,执行一个命令需要:

funobj=vtk.fun()

funobj.setinput(inobj)

funobj.seta(100)

funobj.setb(200)

funobj.setb(300)

funobj.update()

outobj=funobj.getoutput()

而不是

outobj=inobj.fun(a=100,b=200,c=300)

还要哪些场见的包是这样的?如此繁琐的原因是什么?

1024 次点击
所在节点    Python
5 条回复
samnya
1 天前
每个函数的返回值应该是自己吧,可以链式调用下来的,这个叫 builder 模式
比如
funobj.setinput(inobj)
.seta(100)
.setb(200)
yolee599
23 小时 44 分钟前
试试这样:
outobj = vtk.fun().setinput(inobj).seta(100).setb(200).setb(300).update().getoutput()
passive
23 小时 32 分钟前
我喜欢第一种,第二种很可能要用*args 和**kargs ,不够清晰。

Python 用作胶水语言比较多,第一种能原模原样的胶过去,连文档都不需要为 Python 单独写。
renmu
23 小时 13 分钟前
灵活性更好,你可以自己封装一下
volvo007
31 分钟前
这种一般都是用别的语言开发,然后 py 调用接口

这种情况别的语言的风格会被带到 py 里,典型的比如 openCV 也是这样。如楼上说的,某些 api 你甚至找不到文档,程序内也无法跳转,因为直接调用的(比如 C++)的预编译库或者动态库

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089505

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX