trailing underscores naming convention_
Peter Otten
__peter__ at web.de
Fri May 9 07:49:11 EDT 2014
Metallicow wrote:
> On Friday, May 9, 2014 3:10:26 AM UTC-6, Peter Otten wrote:
>> Metallicow wrote:
>>
>> > I guess to be more clear here is a small code snippet that shows what
>> > is happening more readably. Hence the underscores question.
>>
>> Working with multiple names with small differences is error-prone.
>> You should give a method a name that describes what it does rather than
>> when it's invoked:
>>
>> > class MainAuiManager(aui.AuiManager):
>> > def __init__(self, managed_window=None, agwFlags=0)
>> > aui.AuiManager.__init__(self, managed_window, agwFlags)
>>
>> self.Bind(wx.EVT_LEFT_DCLICK, self.EatMagicMushroom)
>> self.Bind(wx.EVT_LEFT_DCLICK, self.KillBlueMonster)
>> self.Bind(wx.EVT_LEFT_DCLICK, self.SingDitty)
>
> While readabily counts, in this case it is pretty readable already.
> Actions speak loader than words. In this case action(as with QT) is an
> event(in wxPython). My actual code would only(realisticly or sanely)
> extend this event once per subclass if at all...
You should reconsider Ian's advice to override the method then.
[in another post]
> I tried the super thing, but in this instance what you posted calls my
method twice, which isn't desired.
Note that if you have
self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick)
in the base class initialiser you must not repeat it in the subclass --
perhaps that is what caused OnLeftDClick() to be invoked twice.
> ...Unless there happens
> to be some crazy need for more(multiple) event methods to fire off when 1
> event happens. Especially for a class bound intended for a top level
> window such as a frame or dialog.
>
> Anyway, the small snippet just shows that this can be done, but the actual
> question you replied to you left unanswered. It is about the trailing
> underscores.
My implicit answer was that you are asking for the best hammer to drive a
screw...
> Now would KillBlueMonsterA vs KillBlueMonsterB vs KillBlueMonster_ be any
> more descriptive than OnLeftDClick_ which describes the event happening
> itself and the code that extends it by 1, in this case the call order.
> I could see the underscore as an extension thereof.
> ...so maybe OnLeftDClick_Extension_Description_ might be better...
> but why the trailing underscores?
I do not remember having seen these trailing underscores. Who is using them
where? Someone misapplying the (questionable) C++ convention to mark
members?
> Maybe others that do this normally can chime in as to
> why they for example would put the underscores on the end,
> if it isn't a common convention. Maybe it is like I see it, as an
> extextion of some special meaning or reason therof, but isn't always
> obvious as most like the name not only desciptive, but short also.
More information about the Python-list
mailing list