擅长:python、mysql、java
<p>您可以将其重写为使用map而不是if/else进行初始检查</p>
<pre><code> methods_map = {
"upper": string.ascii_uppercase,
"lower": string.ascii_lowercase,
"both": string.ascii_letters
}
string_method = methods_map[self.string_method]
string_numbers = string.digits if self.numbers else ''
string_special = string.punctuation if self.special_chars else ''
characters = string_method + string_numbers + string_special
</code></pre>
<p>对于特殊值和数字,可以使用类似<code>string_numbers = ['', string.digits][self.numbers]</code>的if语句,但我不推荐使用它,因为它会使代码的可读性大大降低</p>