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 · 22 小时 31 分钟前 · 987 次点击

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

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

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

    Python 用作胶水语言比较多,第一种能原模原样的胶过去,连文档都不需要为 Python 单独写。
    renmu
        4
    renmu  
       21 小时 8 分钟前 via Android
    灵活性更好,你可以自己封装一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3623 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 04:35 · PVG 12:35 · LAX 20:35 · JFK 23:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.