# [Python 2], 180 bytes This is the fourth iteration of this answer. Each of the last answers has was cracked via reseting the recursion depth. <!-- language-all: lang-python --> <pre><code>import sys if set("".join(open(__file__).read().split('\n')[4:]))-set(' &)(,.:[]a`cdfijmonrt~'):sys.setrecursionlimit(1) for m in sys.modules:sys.modules[m]=None del sys;f=lambda\ </code></pre> [Try it online!][TIO-j5ahyy8n] [Python 2]: https://docs.python.org/2/ [TIO-j5ahyy8n]: https://tio.run/##TY2xDoMgFEV3v4I4VEhakjadbPyF/oAaauWRPgM8Aji49Nepbt3ucM65Ycsf8rdS0AWKmaUtVWhYgszrWi6EnlMAz5UyaEEpISNMmguZgsXMm8E3or@3oxCXw2nYSfCzbPtxes3a4OLIx/xtRLuH5U5EmNeYkLxFt/tXURmKzDH0x7V0pFcLqf3bvRu7J3moNNiDeZjOTu6tp6Eq5Qc "Python 2 – Try It Online" ## What does this do? For the purposes of helping you out a bit I'll explain what this does. This code opens the source file and checks if the remainder of the code is made solely of the characters <code> &)(,.:[]a`cdfijmonrt~</code> If it fails the recursion limit is set to `1` meaning that any code you write will hit the recursion limit. I've also disabled all of the modules, so you can't import anything. There are no tricks here, I have written a solution that uses only these characters and no imports, I'm not doing anything subversive, but I will say that I think this will be pretty hard to crack. To save you some time here is a short list of useful things you cannot do with this restriction - `+` well duh, - `eval`/`exec` Wasn't going to let you get away with that - Numbers, They might be more useful than you think - String literals - `len` - `=`, No assigning variables - `>`,`<`,`==`. . . I have left you with no comparisons - `*`,`-`,`/`,`%`,`^`,`|`,`>>`,`<<` The only operators available are `~` and `&` - `__foo__`, None of those fancy double underscore methods are allowed.