如何在Python函数中只接受某些字符串?

问题描述 投票:0回答:2

我想做这样的:

>>> myfunc("strawberry")
ok
# myfunc only works with strawberry

我知道大多数人都会回答:

def myfunc(something):
   if something == "strawberry":
      print("ok")

但是我想在参数设置中完成这一切
就像,有点像这样:

def myfunc(something: OnlyThese["strawberry", "cake"]:
   print("ok")

虽然上面的代码很不正确,但我想看看Python是否已经有这样的功能了。

python-3.x string function
2个回答
2
投票

不要相信有一种方法可以在函数体中不编写代码的情况下完成您想做的事情。

我在

找到了类似问题的答案

将参数强制执行为特定值列表


0
投票

一个选项是使用

assert
:

def myfunc(something: str):
   assert something in ["strawberry", "cake"]
   print("ok")

如果

someting
参数是“草莓”或“蛋糕”以外的值,则会抛出ValueError。

© www.soinside.com 2019 - 2024. All rights reserved.