[Python-Dev] Replacing self.dict in init (original) (raw)
Kirill Balunov kirillbalunov at gmail.com
Sat Mar 24 11:15:09 EDT 2018
- Previous message (by thread): [Python-Dev] Replacing self.__dict__ in __init__
- Next message (by thread): [Python-Dev] Replacing self.__dict__ in __init__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2018-03-24 17:18 GMT+03:00 Tin Tvrtković <tinchester at gmail.com>:
I've found that, if a class has more than one attribute, instead of creating an init like this: self.a = a self.b = b self.c = c it's faster to do this: self.dict = {'a': a, 'b': b, 'c': c} i.e. to replace the instance dictionary altogether. On PyPy, their core devs inform me this is a bad idea because the instance dictionary is special there, so we won't be doing this on PyPy.
But why you need to replace it? When you can just update it:
class C: def init(self, a, b, c): self.dict.update({'a': a, 'b': b, 'c': c})
I'm certainly not a developer. Just out of curiosity.
With kind regards, -gdg -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20180324/5b1cd185/attachment.html>
- Previous message (by thread): [Python-Dev] Replacing self.__dict__ in __init__
- Next message (by thread): [Python-Dev] Replacing self.__dict__ in __init__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]