在 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)
还要哪些场见的包是这样的?如此繁琐的原因是什么?
1
samnya 42 天前 via iPhone 1
每个函数的返回值应该是自己吧,可以链式调用下来的,这个叫 builder 模式
比如 funobj.setinput(inobj) .seta(100) .setb(200) |
2
yolee599 42 天前
试试这样:
outobj = vtk.fun().setinput(inobj).seta(100).setb(200).setb(300).update().getoutput() |
3
passive 42 天前 via Android
我喜欢第一种,第二种很可能要用*args 和**kargs ,不够清晰。
Python 用作胶水语言比较多,第一种能原模原样的胶过去,连文档都不需要为 Python 单独写。 |
4
renmu 42 天前 via Android
灵活性更好,你可以自己封装一下
|
5
volvo007 41 天前
这种一般都是用别的语言开发,然后 py 调用接口
这种情况别的语言的风格会被带到 py 里,典型的比如 openCV 也是这样。如楼上说的,某些 api 你甚至找不到文档,程序内也无法跳转,因为直接调用的(比如 C++)的预编译库或者动态库 |