我将该职能定义如下:
def pick(l: list, index: int) -> int:
return l[index]这意味着我必须传递整数参数作为第二个参数。但当我用,
print(pick(['a', 'b', 'c'],True)) #returns me the 'b'.我之所以从PHP转到PYTHON,是因为PHP让我头疼。(我的意思是不使用强类型变量,也可以处理utf-8字符串)。
如何将传递的布尔参数限制为整数?
发布于 2022-08-18 12:50:42
通常,输入和在IDE上配置的类型检查器就足够了。如果要在运行时强制进行类型选择,可以使用以下方法:
if not isinstance(index, int):
raise TypeError 但是在Python中,bool是int的一个子类- isinstance(False, int)返回True。这意味着TypeError仍然不会被引发。你可以用
if isinstance(index, bool):
raise TypeError 但是在这一点上,如果程序员真的想使用这样的结构,我看不出有什么理由这么做--特别是基于语言规范的bool是int,所以无论int在哪里,Liskov代换原理都应该被接受。
https://stackoverflow.com/questions/73403117
复制相似问题