Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
随机更改Python解释器中的提示_Python_Prompt_Python Interactive - Fatal编程技术网

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

在Python中总是看到
>
提示符有点无聊。随机更改提示前缀的最佳方法是什么

我想象这样的互动:

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=[…];返回选项(提示)
足够吗?函数每次都会运行初始化。在这种特殊情况下,它不会很昂贵,但通常将初始化与实际代码分开是一种很好的做法。