<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body><div><div style="font-family: Calibri,sans-serif; font-size: 11pt;">When you apply the "what if everyone did this" rule, it looks like a bad idea (or alternatively, what if two people who weren't expecting anyone else to do this did it).<br><br>Monkeypatching is fairly blatantly taking advantage of the object model in a way that is not "supported" and cannot behave well in the context of everyone doing it, whereas inheritance or mixins are safe. Making a dedicated syntax or decorator for patching is saying that we (the language) think you should do it. (The extension_method decorator sends exactly the wrong message about what it's doing.)<br><br>Enabling a __class__ variable within the scope of the definition would also solve the motivating example, and is less likely to lead to code where you need to review multiple modules and determine whole-program import order to figure out why your calls do not work.<br><br>Top-posted from my Windows Phone</div></div><div dir="ltr"><hr><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">From: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:markusmeskanen@gmail.com">Markus Meskanen</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Sent: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">‎2/‎10/‎2017 10:18</span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">To: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:p.f.moore@gmail.com">Paul Moore</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Cc: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:python-ideas@python.org">Python-Ideas</a>; <a href="mailto:steve.dower@python.org">Steve Dower</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Subject: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">Re: [Python-ideas] Fwd: Define a method or function attributeoutsideof a class with the dot operator</span><br><br></div><div dir="auto"><div><div dir="auto">Well yes, but I think you're a bit too fast on labeling it a mistake to use monkey patching...</div><br><div class="gmail_extra"><br><div class="gmail_quote">On Feb 10, 2017 18:15, "Paul Moore" <<a href="mailto:p.f.moore@gmail.com">p.f.moore@gmail.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;"><div class="quoted-text">On 10 February 2017 at 16:09, Markus Meskanen <<a href="mailto:markusmeskanen@gmail.com">markusmeskanen@gmail.com</a>> wrote:<br>
> But if people are gonna do it anyways with the tools provided (monkey<br>
> patching), why not provide them with better tools?<br>
<br>
</div>Because encouraging and making it easier for people to make mistakes<br>
is the wrong thing to do, surely?<br>
<font color="#888888"><br>
Paul<br>
</font></blockquote></div><br></div></div></div>
</body></html>