在python中链接实例方法

2024-06-02 05:34:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python创建一个带有方法和子方法的类。在

举例说明我想做什么:

foo = Foo()
foo.playlist('my playlist').add('i_add_a_track_in_"my playlist".ogg')
foo.playlist('my playlist').delete('i_remove_this_track.ogg')

我现在有这个代码:

^{pr2}$

我不知道我怎么帮不上忙。在

谢谢你


Tags: 方法代码inaddfoomytrackthis
2条回答

IIUC,你想一个接一个地连接方法调用吗?您只需在每个函数的末尾返回self。在

class Foo(object):
    ...   
    def playlist(self, name):
        ...
        return self

    ... # and so on

MVCE公司:

^{pr2}$

如果我理解正确,foo.playlist('someplaylist').do_something()实际上应该是

playlist = foo('someplaylist')
playlist.do_something()

其中playlist不是foo对象(即foo.do_something()没有任何意义,只会引发一个错误),而是一个不同类的实例。在

如果确实是这样,那么您实际上需要两个类:Foo,方法是playlist(...),它返回一个Playlist对象,而{}具有add()delete()方法:

^{pr2}$

相关问题 更多 >