我在Python代码库中找到了如下类似的类定义。官方文件中似乎没有类似的例子。很难在Google上找到类似的东西并在论坛中搜索。有人可以帮助我了解其背后的Python原理吗?class a: passclass b: passcondition = Trueclass c(a if condition == True else b): pass
1 回答
米脂
TA贡献1836条经验 获得超3个赞
a if condition == True else b 是三元表达式。
a如果condition等于Trueelse ,则表示用作基类b。
由于condition == True是True所以它使用a:
>>> class c(a if condition == True else b): pass
>>> c.__bases__
(<class __main__.a at 0xb615444c>,)
例子:
>>> print 'foo' if 0>1 else 'bar'
bar
>>> print 'foo' if 1>0 else 'bar'
foo
从文档:
该表达式x if C else y首先计算条件,C而不是 x;如果C为true,x则进行评估并返回其值;否则,y将求值并返回其值。
添加回答
举报
0/150
提交
取消