在Python中仅允许通过正则表达式选择字符串

时间:2019-07-19 12:15:16

标签: python regex

我想允许我的函数只传递两个确切的字符串。该功能将仅启用以下值:“ IPv4”和“ IPv6”。其他字符串应返回错误。 注意:_set_ip_version是我的助手功能

def _set_ip_version(self, version):

        version = str(version)
        try:
            val = re.match((IPv4|IPv6), version)
        except:
            raise ValueError(val)
        out = self._set_ip_version(
            "ip version {}".format(val)
        return out

我只允许传递值IPv4IPv6。其他字符串不应通过。 目前,即使我发送IPv4IPv6字符串,我也会遇到ValueError。

1 个答案:

答案 0 :(得分:0)

我认为您必须使用枚举而不是字符串。

from enum import Enum

class ip_version(Enum):
    IPv4= 1
    IPv6= 2

def func(self, version):
    if isinstance(version, ip_version):
        #Do something