Preventing execution of a method
google at mrabarnett.plus.com
Thu Dec 11 17:44:44 CET 2008
> On Dec 12, 2:07 am, "Emanuele D'Arrigo" <man... at gmail.com> wrote:
>> I.e. if I have a class with two methods, doSomethingSafe() and
>> doSomethingDangerous(), is there a way to prevent another module from
>> executing doSomethingDangerous() but allow the execution of
>> My understanding is that in python this is not possible. Can you
> Your understanding is correct.
> The Python convention is to prefix non-public methods/classes etc with
> an underscore, as in _doSomethingDangerous(). This is meant to
> indicate to anyone using your module that they shouldn't use this
> function, at least not without having a good understanding of what it
You could add a little bit of protection by always passing a certain
object into _doSomethingDangerous().
_guard = object()
if g is not _guard:
raise Exception("Don't do that!")
That would at least stop accidental calls.
More information about the Python-list