sensitive_words_list=['asshole','fuck','shit']defdetect_sensitive_words(string):"""检测敏感词汇"""# words_detected = filter(lambda word: word in string.lower(), sensitive_words_list)words_detected=Noneforiteminsensitive_words_list:ifiteminstring.lower():words_detected=Trueifwords_detected:raiseNameError('Sensitive words {0} detected in the string "{1}".'.format(words_detected,string))classCleanerMeta(type):def__new__(mcs,class_name,bases,attrs):detect_sensitive_words(class_name)# 检查类名# map(detect_sensitive_words, attrs.iterkeys()) # 检查属性名print("Well done! You are a polite coder!")# 如无异常,输出祝贺消息returnsuper(CleanerMeta,mcs).__new__(mcs,class_name,bases,attrs)# 重要!这行一定不能漏!!这回调用内建的类构造器来构造类,否则定义好的类将会变成 NoneclassAPIBase(metaclass=CleanerMeta):passclassImAGoodBoy(APIBase):a_polite_attribute=1classFuckMyBoss(APIBase):pass# detect_sensitive_words('avc')