gpt4 book ai didi

python - 混淆 python _init_ 函数中的属性分配

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

以下代码片段来自SQLAlchemy source code :

class EngineStrategy(object):
"""An adaptor that processes input arguments and produces an Engine.
Provides a ``create`` method that receives input arguments and
produces an instance of base.Engine or a subclass.
"""

def __init__(self):
strategies[self.name] = self

最后一条语句是如何工作的?

最佳答案

EngineStrategy 是一种抽象类。如果您尝试搜索此类的用法,您只会找到它的继承。

所以 self.name 实际上来自 cls.name(类变量),就像下面的 PlainEngineStrategy :

class PlainEngineStrategy(DefaultEngineStrategy):
"""Strategy for configuring a regular Engine."""

name = 'plain'
engine_cls = base.Engine

这允许将所有策略存储在结构为strategies的字典中:{'stategy_name': strategy_class}

<子>sqlalchemy 相关的注释:官方仓库的镜像现在位于 https://github.com/sqlalchemy/sqlalchemy

关于python - 混淆 python _init_ 函数中的属性分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53670801/

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