import re, functools
def checkaddr(func):
@functools.wraps(func)
def wrapper(*args,**kwargs):
for i in args:
if not isinstance(i, str):
raise TypeError('Addr must be string!!!')
return func(*args, **kwargs)
return wrapper
@checkaddr
def is_valid_email(addr):
pat = re.compile(r'([0-9a-zA-Z\.\_]+)@([0-9a-zA-Z\.]+)')
try:
m = pat.match(addr)
if m.group(2) in ('gmail.com','microsoft.com'):
return True
except AttributeError as e:
print(e, '没有填写正确的addr')
# # 测试:
assert is_valid_email('someone@gmail.com')
assert is_valid_email('bill.gates@microsoft.com')
assert not is_valid_email('bob#example.com')
assert not is_valid_email('mr-bob@example.com')
print('ok')
泛色海岸