gpt4 book ai didi

python - 延迟加载/配置要继承的类

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:09 24 4
gpt4 key购买 nike

我创建了一个带有可选部分/类的 Python 包。当我使用这个可选部分 (OptClass) 时,我必须更改类 (ExampleClass) 的继承。现在我使用这段代码:

if use_option :
_opt_class = __import__('package.my_module', globals(), locals(), ['OptClass']).OptClass
else :
_opt_class = object # do not use the optional class

....

class ExampleClass(base_module.BaseHandler, _opt_class):

....

是否有另一种 Pythonic 方式来解决这个问题?例如使用动态继承或延迟加载,或者......?

最佳答案

我可能会使用类装饰器:

def optional_inherit(cls):
if use_option:
from package.my_module import OptClass
class ExampleClassWithOptClass(cls, OptClass):
pass
return ExampleClassWithOptClass
else:
return cls

...

@optional_inherit
class ExampleClass(base_module.BaseHandler):
...

如果您经常这样做,您可以编写 optional_inherit 来接受参数;在这种情况下,@optional_inherit(use_option, 'package.mymodule.OptClass')

关于python - 延迟加载/配置要继承的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14879206/

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