【发布时间】:2018-08-07 00:50:30
【问题描述】:
我有一个函数接收变量x 并检查它是“零”还是“空”。
使用PEP-484 类型提示语法,我会使用什么类型提示?
我将如何通过提供自定义__bool__ 或__len__ 方法来检查它是否明确为“boolable”(因此bool(object) 的结果可能是False) ,除了检查它是否真的实现了__bool__ 或__len__ 方法?
示例:
def my_func(x: "what goes here?"):
assert boolable(x) # what to do in this line?
if x:
"some logic"
else:
"some other logic"
我不想接受任何对象;所有对象都有一个真值,但对于没有__bool__ 或__len__ 的类型总是True。
【问题讨论】:
-
bool()或if ...逻辑能否针对实际可能的用例引发异常?断言可能没有必要? -
“真正的布尔型”是什么意思? True/False 实际上是 1 和 0。
boolable(x)会做什么,if x不会? -
Truthy and Falsy 浮现在脑海中。stackoverflow.com/questions/39983695/…
-
@DeepSpace 如果一个变量没有
__bool__或__len__dunder 方法,它总是True,这不是我们想要的结果。
标签: python boolean type-hinting