我有另一个新手 Python 问题。我有以下一段代码,我觉得它没有像它应该的那样写成 pythonic:
rowindex = 0
while params.getfirst('myfield'+rowindex):
myid = params.getfirst('myfield'+rowindex)
# do stuff with myid
rowindex+=1
此脚本的输入是一个 HTML 页面,该页面可以有任意数量的名为“myfield#”的输入字段,其中 # 从 0 开始并按顺序增加。在 Perl 中,我会做更像这样的事情:
rowindex = 0
while myid = params.getfirst('myfield'+rowindex):
#do stuff with myid
rowindex+=1
但这不是 Python 中的有效语法。我知道我所拥有的会起作用,但是有更好的方法吗?谢谢。
请您参考如下方法:
简单计数器的“无限”特性具有一定的吸引力。但是,这也是有人通过欺骗具有数十亿个字段的表单来尝试拒绝服务攻击的机会。当您尝试处理数十亿个字段时,简单地对字段进行计数可能会使您的 Web 服务器停止运行。
由于 Python 会自动转换为 long,通常的 20 亿整数溢出不适用。有人真的可以用数十亿个字段来惩罚您的网站。
for i in range(1024): # some sensible upper limit, beyond which the input is suspicious
myid= params.getfirst("myfield%d" % i)
if not myid: break
# do stuff with myid
