Python 来自类和协议的多重继承

opn*_*771 6 python inheritance protocols

在 Python 中,我有两个协议,其中一个继承于另一个:

class SupportsFileOperations(Protocol):
    ...

class SupportsMediaOperations(SupportsFileOperations):
    ...
Run Code Online (Sandbox Code Playgroud)

然后,我有几个实现这些协议的具体类,其中一个类继承另一个类。

class File(SupportsFileOperations):
    ...

class MediaFile(File, SupportsMediaOperations):
    def __init__(self):
        File.__init__(self)
Run Code Online (Sandbox Code Playgroud)

我的问题是,调用构造函数是File.__init__(self)初始化MediaFile它的正确方法吗?我不确定多重继承如何与协议一起使用。

谢谢!

Jea*_* T. 6

Protocol您可以简单地在子类中添加:

from typing import Protocol

class SupportsFileOperations(Protocol):
    ...

class SupportsMediaOperations(SupportsFileOperations, Protocol):
    ...
Run Code Online (Sandbox Code Playgroud)