Randomly change the prompt in the Python interpreter
According to the docs, if you assign a non-string object to sys.ps1
then it will evaluate the str
function of it each time:
If a non-string object is assigned to either variable, its str() is re-evaluated each time the interpreter prepares to read a new interactive command; this can be used to implement a dynamic prompt.
Well now it's obvious, you should make it dynamic! Make an object with a __str__
method where you can place any logic you want:
class Prompt: def __str__(self): # Logic to randomly determine string return string
You can also make changes or insert things into this class as you go too. So for example, you could have a list of messages in Prompt
that you append to, or change, and that will affect the console message.
Try this:
>>> import sys>>> import random>>> class RandomPrompt(object):... prompts = 'hello >', 'hi >', 'hey >'... def __repr__ (self): return random.choice(self.prompts)... >>> sys.ps1 = RandomPrompt()hello >11hi >22
For changing the prompt, we use
>>>import sys>>>sys.ps1 = '=>'=>
Now the way to do it randomly would be something like this:
import randomimport sysrandom_prompts = ['->', '-->', '=>', 'Hello->']sys.ps1 = random.choice(random_prompts)
To execute this when your python interpreter starts, you can follow this guide: https://docs.python.org/2/tutorial/appendix.html#the-interactive-startup-file