I was wondering, is it recommended/Pythonic to define and use custom double underscore variables/functions in a Python script? For example, __tablename__
as used in SQLAlchemy or __validateitem__()
(a custom function that validates an item before applying __setitem__()
to it).
If it does define that something magic happens, or that that specific variable/function is used indeed in a special way (like the two above examples), I feel it is a good idea using them.
I am interested in arguments on both best coding practices and potential risks in using this kind of naming.
From PEP8:
__double_leading_and_trailing_underscore__
: "magic" objects or attributes that live in user-controlled namespaces. E.g.__init__
,__import__
or__file__
. Never invent such names; only use them as documented.
So, the advice is not to use the double underscore syntax for your own variables.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With