对于Python
2,您
raw_input不需要
input。前者会读一行。后者将读取一行并尝试执行它,如果您不希望代码被输入数据的人破坏,则不建议这样做。
例如,他们可以按照以下示例执行调用任意函数的 *** 作:
def sety99(): global y y = 99y = 0input ("Enter something: ")print y
如果您在Python
2下运行该代码并输入
sety99(),则
99即使您的代码(在其正常执行流中)没有刻意将其设置
y为除零以外的任何值(在函数中也是如此,但该函数永远不会),输出仍将由您的代码明确调用)。这样做的原因是该
input(prompt)呼叫等同于
eval(raw_input(prompt))。
详细信息请参见此处。
请记住,Python
3可以解决此问题。此处的输入函数的行为符合您的预期。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)