我想允许我的函数只传递两个确切的字符串。该功能将仅启用以下值:“ 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
我只允许传递值IPv4
或IPv6
。其他字符串不应通过。
目前,即使我发送IPv4
或IPv6
字符串,我也会遇到ValueError。
答案 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