为了账号安全,请及时绑定邮箱和手机立即绑定

数据类型`NoneType`比较?

数据类型`NoneType`比较?

LEATH 2021-09-25 16:25:49
我正在尝试1-65535使用urlparse.棘手的部分是,如果 URL 中没有端口号,urlparse(url).port则标识为NoneType因此,我尝试根据数据类型进行简单的比较,但并没有像您在此示例中看到的那样真正起作用。如果我NoneType用作数据类型,elif type(u.port) == NoneType:我收到错误NameError: name 'NoneType' is not defined我没有使用,validators因为它无法正确验证端口号。TCP/UDP 端口号范围从 1-65535 开始。但是,validators无法识别端口1-9并且仍然接受大于65535.代码from urllib.parse import urlparsedef test(url):    global u    u = urlparse(url)    print(' Port      : ', u.port)    print(' Data Type : u.port %s\n'% type(u.port))for url in ['example.com', 'example.com:1', 'http://example.com:1']:    print(url)    test(url)    if type(u.port) == int:        print(' Integer')    elif type(u.port) == None:        print(' None')    # elif type(u.port) == NoneType:        # NameError: name 'NoneType' is not defined    #   print(' None')输出example.com Port      :  None Data Type : u.port <class 'NoneType'>example.com:1 Port      :  None Data Type : u.port <class 'NoneType'>http://example.com:1 Port      :  1 Data Type : u.port <class 'int'>    Integer
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

不要比较要检查的类型,请None使用:


elif u.port is None:

    print(' None')


查看完整回答
反对 回复 2021-09-25
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

您还可以通过以下方式检查 NoneType:


elif isinstance(u.port, type(None)):

    print(' None')


查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 223 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信