随机更改Python解释器中的提示
在Python中总是看到随机更改Python解释器中的提示,python,prompt,python-interactive,Python,Prompt,Python Interactive,在Python中总是看到>提示符有点无聊。随机更改提示前缀的最佳方法是什么 我想象这样的互动: This is a tobbaconist!>> import sys Sorry?>> import math Sorry?>> print sys.ps1 Sorry? What?>> 问得好。>>提示符位于sys.ps1中,提示符位于sys.ps2中。下一个问题是如何随机改变这一点。作为手动更改的演示: >>> import s
>
提示符有点无聊。随机更改提示前缀的最佳方法是什么
我想象这样的互动:
This is a tobbaconist!>> import sys
Sorry?>> import math
Sorry?>> print sys.ps1
Sorry?
What?>>
问得好。
>>
提示符位于sys.ps1
中,提示符位于sys.ps2
中。下一个问题是如何随机改变这一点。作为手动更改的演示:
>>> import sys
>>> sys.ps1 = '<<<'
<<<sys.ps1 = '<<< '
<<< sys.ps2 = '.?. '
<<< for i in line:
.?.
导入系统
>>>sys.ps1='对于更改提示符,我们使用
>>>import sys
>>>sys.ps1 = '=>'
=>
现在,随机进行的方法如下:
import random
import sys
random_prompts = ['->', '-->', '=>', 'Hello->']
sys.ps1 = random.choice(random_prompts)
要在python解释器启动时执行此操作,可以遵循以下指南:尝试以下操作:
>>> 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
根据,如果您将一个非字符串对象分配给sys.ps1
,则每次它都会计算其str
函数:
如果将非字符串对象指定给任一变量,则其str()为
每次口译员准备阅读新的
交互命令;这可用于实现动态提示
现在很明显,你应该让它充满活力!使用\uuuu str\uuu
方法创建一个对象,您可以在其中放置所需的任何逻辑:
class Prompt:
def __str__(self):
# Logic to randomly determine string
return string
您也可以在运行时对此类进行更改或插入内容。因此,例如,您可以在提示符中添加或更改一个消息列表,这将影响控制台消息。在询问包括口译员会话的问题之前,请确保将其更改回原来的列表。@jornsharpe“为什么我的口译员不是Tobbacister!”你甚至可以为烟草商提供随机颜色。Paging@hovercraftfullofeels将所有随机提示保持固定宽度可能是个好主意。除非您喜欢额外的挑战,即计算空格并在事情看起来没有对齐时忽略,以确保正确缩进。\uuuu repr\uuuu()
或\uu str\uuu()
?@glglglgl,否则会通过调用\uuu str\uuu()
生成提示。如果未定义,则默认为\uuu repr\uuu()
,因此在本例中,选择哪一个并不重要。请确定:为什么要在本例中编写类。不会def randomport():prompts=[…];返回选项(提示)
足够吗?函数每次都会运行初始化。在这种特殊情况下,它不会很昂贵,但通常将初始化与实际代码分开是一种很好的做法。