简化代码:将类作为Python中的简单容器

时间:2012-01-11 16:11:04

标签: python

我正在尝试编写一个可以称为drag的函数drag('Object1').to('Object2')。下面的代码可以按我的方式工作,但似乎只使用class作为容器可能是不必要的:

def drag(source):
    class Container:
        def to(self, target):
            print 'Dragging ' + source + ' to ' + target

    return Container()

上述代码可以简化吗?

1 个答案:

答案 0 :(得分:2)

我认为您可以使用具有源的类,并且在调用to时获取目标并打印该消息。您可以致电课程drag

class drag:
    def __init__(self, source):
        self.source = source
    def to(self, target):
        print 'Dragging ' + self.source + ' to ' + target

或者您可以在代码中使用Container类,并让drag只是一个调用初始化程序的函数:

class Container:
    def __init__(self, source):
        self.source = source
    def to(self, target):
        print 'Dragging ' + self.source + ' to ' + target

def drag(source):
    return Container(source)

我会指出这个函数并没有真正做任何有用的事情,并且尝试编写这样一个有用的类/函数会使你的代码不那么清晰而不添加任何内容。