随机更改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: .?.