潜在用户有可能实现这一声明吗?
secret = 25134231
z = ast.literal_eval(user_input)
if z == secret:
access.granted()
编辑以进一步回答您的问题。。。我认为您正在通过literal_eval()
从用户输入(以及其他内容)进行函数调用,但答案是否定的,这是不可能的。literal_eval()
是专门为防止这种类型的输入而设计的。
对比见下文。用户可以键入access_granted()
,函数的运行方式与用户键入24134231
时相同。
import ast
def access_granted():
print 'Yay'
while True:
secret = 25134231
user_input = raw_input('In: ')
z = eval(user_input)
if z == secret:
access_granted()
示例:
In: access_granted()
Yay
In: 'Foo'
In: 25134231
Yay