Discuss / Python / Cxxxxxi

Cxxxxxi

Topic source

泛色海岸

#1 Created at ... [Delete] [Delete and Lock User]
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')

  • 1

Reply