代码之家  ›  专栏  ›  技术社区  ›  Phil

对象上的python方法-哪个更好?

  •  0
  • Phil  · 技术社区  · 15 年前

    希望是个简单的问题。如果我有一个对象,我想对它调用一个方法,哪种方法更好,A还是B?

    class foo(object):
        def bar():
            print 'bar'
    
    # approach A
    f = foo()
    f.bar()
    
    # approach B
    foo().bar()
    
    3 回复  |  直到 15 年前
        1
  •  2
  •   Amarghosh    15 年前

    如果你的唯一目的是 bar() 在一 foo 对象,b没问题。

    但是如果你真的打算以后对这个对象做些什么的话,你必须使用a,因为b不会给你留下任何对创建对象的引用。

        2
  •  2
  •   brettkelly    15 年前

    A的可读性更强。

    所以,A:)

        3
  •  1
  •   phkahler    15 年前

    方法B不能保持物体在周围。如果方法bar()返回self,则可以编写:

    f = foo().bar()
    

    就我个人而言,我喜欢方法A。虽然我已经开始制作setter函数,返回self,以便像上面那样将它们链接在一起-我不认为其他人认为那是蟒蛇。