python 不区分大小写_不区分大小写的'in'-Python
通常(至少在oop中),您可以使对象成形为所需的行为。name in USERNAMES不区分大小写,因此USERNAMES需要更改:class NameList(object):def __init__(self, names):self.names = namesdef __contains__(self, name): # implements `in`return name.lower()
·
通常(至少在oop中),您可以使对象成形为所需的行为。name in USERNAMES不区分大小写,因此USERNAMES需要更改:
class NameList(object):
def __init__(self, names):
self.names = names
def __contains__(self, name): # implements `in`
return name.lower() in (n.lower() for n in self.names)
def add(self, name):
self.names.append(name)
# now this works
usernames = NameList(USERNAMES)
print someone in usernames
这样做的好处在于,它无需进行任何类外的代码更改,便可以进行许多改进。例如,您可以将更self.names改为一组以进行更快的查找,或者(n.lower() for n in self.names)仅计算一次并将其存储在类中,依此类推...
更多推荐
所有评论(0)