gpt4 book ai didi

基于条件的 Python 类定义

转载 作者:太空狗 更新时间:2023-10-30 01:09:02 24 4
gpt4 key购买 nike

我在 Python 代码库中发现了一个类似于下面的类定义。官方文档中好像没有类似的例子。很难通过谷歌和在论坛中搜索找到类似的东西。谁能帮我理解一下这背后的Python原理?

class a: pass
class b: pass
condition = True
class c(a if condition == True else b): pass

最佳答案

a if condition == True else b 是一个三元表达式。

这意味着如果 condition 等于 True 则使用 a 作为基类,否则使用 b

因为 condition == TrueTrue 所以它使用 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

来自docs :

The expression x if C else y first evaluates the condition, C (not x); if C is true, x is evaluated and its value is returned; otherwise, y is evaluated and its value is returned.

关于基于条件的 Python 类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17277332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com