V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
shinsekai
V2EX  ›  Python

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

  •  
  •   shinsekai · 1 天前 · 1027 次点击

    在 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)

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

    5 条回复    2024-11-15 14:09:27 +08:00
    samnya
        1
    samnya  
       1 天前 via iPhone
    每个函数的返回值应该是自己吧,可以链式调用下来的,这个叫 builder 模式
    比如
    funobj.setinput(inobj)
    .seta(100)
    .setb(200)
    yolee599
        2
    yolee599  
       23 小时 50 分钟前
    试试这样:
    outobj = vtk.fun().setinput(inobj).seta(100).setb(200).setb(300).update().getoutput()
    passive
        3
    passive  
       23 小时 38 分钟前 via Android
    我喜欢第一种,第二种很可能要用*args 和**kargs ,不够清晰。

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

    这种情况别的语言的风格会被带到 py 里,典型的比如 openCV 也是这样。如楼上说的,某些 api 你甚至找不到文档,程序内也无法跳转,因为直接调用的(比如 C++)的预编译库或者动态库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5533 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:46 · PVG 14:46 · LAX 22:46 · JFK 01:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.