Python secrets模块示例代码的两处技术疑问
问题解答
1. c.islower()、c.isdigit()和c.isupper()方法的来源
这些都是Python内置字符串(str)类型的实例方法。alphabet是由string.ascii_letters(大小写字母)和string.digits(数字)拼接成的字符串,secrets.choice(alphabet)每次会从alphabet里取出一个单个字符的字符串,这个字符对象属于str类型实例,因此可以直接调用这些方法判断字符属性。
2. 循环表达式里的变量i的来源
i是从range(10)生成的序列里迭代出来的变量。
这里用的是生成器表达式(secrets.choice(alphabet) for i in range(10)),range(10)会生成包含0到9的10个整数的序列,i只是用来遍历这个序列,从而控制生成器循环执行10次——实际上生成器里并没有用到i的值,它只是一个占位符变量,这类用不到的占位符通常也可以用下划线_代替,效果完全一致。
内容的提问来源于stack exchange,提问作者clinton-k8
相关产品推荐
相关产品推荐

