Movatterモバイル変換
[0]ホーム
[Python-Dev] PEP 309: Partial method application
"Martin v. Löwis"martin at v.loewis.de
Fri Aug 19 07:59:38 CEST 2005
Steven Bethard wrote:>>I thought that:>> operator.attrgetter() was for obj.attr>> operator.itemgetter() was for obj[integer_index]>>> My point exactly. If we're sticking to the same style, I would expect that for> obj.method(*args, **kwargs)> we would have something like:> operator.methodcaller('method', *args, **kwargs)You might be missing one aspect of attrgetter, though. I can have f = operator.attrgetter('name', 'age')and then f(person) gives me (person.name, person.age). Likewise foritemgetter(1,2,3). Extending this to methodcaller is not natural;you would have x=methodcaller(('open',['foo','r'],{}),('read',[100],{}), ('close',[],{}))and then x(somestorage)(I know this is not the typical open/read/close pattern, where you would normally call read on what open returns)It might be that there is no use case for a multi-call methodgetter;I just point out that a single-call methodgetter would *not* bein the same style as attrgetter and itemgetter.> attrget.attr (for obj.attr)> itemget[key] (for obj[key])I agree that would be consistent. These also wouldn't allow to getmultiple items and indices. I don't know what the common use forattrgetter is: one or more attributes?Regards,Martin
More information about the Python-Devmailing list
[8]ページ先頭