希望这是一个简单的问题。如果我有一个对象并且我想在其上调用一个方法,这是更好的方法,A或B?
class foo(object):
def bar():
print 'bar'
# approach A
f = foo()
f.bar()
# approach B
foo().bar()
答案 0 :(得分:2)
A更具可读性。
所以,A:)
答案 1 :(得分:2)
如果您的唯一目的是在bar()
对象上致电foo
,B就可以了。
但是如果你真的打算稍后对这个对象做一些事情,你必须使用A,因为B不会给你任何对创建对象的引用。
答案 2 :(得分:1)
方法B不保留对象。如果方法bar()返回self,那么你可以写:
f = foo().bar()
我个人喜欢方法A.虽然我已经开始制作返回自我的setter函数,以便将它们连接在一起 - 我不认为其他人会考虑pythonic。