今天出现了一个错误:

D:\>python3 re.py
Input a email addr: someone@gmail.com
Traceback (most recent call last):
  File "re.py", line 1, in <module>
    import re
  File "D:\re.py", line 12, in <module>
    print(is_valid_email(addr))
  File "D:\re.py", line 5, in is_valid_email
    if re.match(re_str, addr):
AttributeError: module 're' has no attribute 'match'

代码如下:

import re

def is_valid_email(addr):
	re_str = r'^([a-zA-Z_.])@([a-zA-Z.].[com|cn|gov])'
	if re.match(re_str, addr):
		return True
	else:
		return False

while (1):
	addr = str(input('Input a email addr: '))
	print(is_valid_email(addr))

明明有导入re模块,但是却没有match方法。原来是因为我把python文件命名为re.py,与内置的re模块重名导致。