对象的Python方法 - 哪个更好?

时间:2010-03-09 14:26:08

标签: python

希望这是一个简单的问题。如果我有一个对象并且我想在其上调用一个方法,这是更好的方法,A或B?

class foo(object):
    def bar():
        print 'bar'

# approach A
f = foo()
f.bar()

# approach B
foo().bar()

3 个答案:

答案 0 :(得分:2)

A更具可读性。

所以,A:)

答案 1 :(得分:2)

如果您的唯一目的是在bar()对象上致电foo,B就可以了。

但是如果你真的打算稍后对这个对象做一些事情,你必须使用A,因为B不会给你任何对创建对象的引用。

答案 2 :(得分:1)

方法B不保留对象。如果方法bar()返回self,那么你可以写:

f = foo().bar()

我个人喜欢方法A.虽然我已经开始制作返回自我的setter函数,以便将它们连接在一起 - 我不认为其他人会考虑pythonic。