Calling dunder methods manually

Rustom Mody rustompmody at gmail.com
Thu Apr 13 02:18:47 EDT 2017


On Thursday, April 13, 2017 at 11:00:03 AM UTC+5:30, Steven D'Aprano wrote:
> Should you call dunder methods (Double leading and trailing UNDERscores) 
> manually? For example:
> 
> 
> my_number.__add__(another_number)
> 
> 
> The short answer is:
> 
> NO! In general, you shouldn't do it.
> 
> 
> Guido recently commented:
> 
>     I agree that one shouldn't call __init__ manually (and in fact Python
>     always reserves the right to have "undefined" behavior when you
>     define or use dunder names other than documented).
> 
> 
> so unless documented as safe to use manually, you should assume that it 
> is not.
> 
> 
> https://github.com/python/typing/issues/241#issuecomment-292694838
> 
> 
> 
> This-Public-Service-Announcement-Brought-To-You-By-MyPy-ly y'rs,
> 
> 
> 
> 
> -- 
> Steve

I believe it was ChrisA who gave a pithy summary of the situation:
Dont CALL dunders
But its fine to DEFINE them


More information about the Python-list mailing list