随机更改Python解释器中的提示

总是在Python中看到>>>提示是无聊的。 随机更改提示字首的最佳方法是什么?

我想像一个互动,如:

 This is a tobbaconist!>> import sys Sorry?>> import math Sorry?>> print sys.ps1 Sorry? What?>> 

根据文档 ,如果您将一个非string对象分配给sys.ps1那么它将每次评估它的str函数:

如果一个非string对象被分配给任何一个variables,那么每次解释器准备读取一个新的交互式命令时,都会重新评估它的str() 这可以用来实现一个dynamic提示。

那么现在很明显,你应该使它dynamic! 使用__str__方法创build对象,您可以放置​​任何您想要的逻辑:

 class Prompt: def __str__(self): # Logic to randomly determine string return string 

您也可以随时进行更改或在课堂中插入内容。 因此,例如,您可以在Prompt中添加或修改消息列表,这将影响控制台消息。

尝试这个:

 >>> import sys >>> import random >>> class RandomPrompt(object): ... prompts = 'hello >', 'hi >', 'hey >' ... def __repr__ (self): return random.choice(self.prompts) ... >>> sys.ps1 = RandomPrompt() hello >1 1 hi >2 2 

为了改变提示,我们使用

 >>>import sys >>>sys.ps1 = '=>' => 

现在随意的做法是这样的:

 import random import sys random_prompts = ['->', '-->', '=>', 'Hello->'] sys.ps1 = random.choice(random_prompts) 

要在你的python解释器启动的时候执行这个,你可以按照这个指导: https : //docs.python.org/2/tutorial/appendix.html#the-interactive-startup-file

很好的问题。 >>>提示符在sys.ps1 ,在sys.ps2 。 接下来的问题是如何随机改变这个问题。 就像是一个手工改变的例子:

 >>> import sys >>> sys.ps1 = '<<<' <<<sys.ps1 = '<<< ' <<< sys.ps2 = '.?. ' <<< for i in line: .?.