提问人:opnightfall1771 提问时间:10/31/2021 更新时间:10/31/2023 访问量:2748
Python 从类和协议的多重继承
Python multiple inheritance from class and protocol
问:
在 Python 中,我有两个协议,其中一个继承自另一个:
class SupportsFileOperations(Protocol):
...
class SupportsMediaOperations(SupportsFileOperations):
...
然后,我有几个具体的类来实现这些协议,其中一个从另一个继承而来。
class File(SupportsFileOperations):
...
class MediaFile(File, SupportsMediaOperations):
def __init__(self):
File.__init__(self)
我的问题是,调用构造函数是初始化它的正确方法吗?我不确定多重继承如何与协议配合使用。File.__init__(self)
MediaFile
谢谢!
答:
4赞
Jean-Francois T.
3/25/2022
#1
您可以简单地添加子类:Protocol
from typing import Protocol
class SupportsFileOperations(Protocol):
...
class SupportsMediaOperations(SupportsFileOperations, Protocol):
...
0赞
pingvincible
10/31/2023
#2
在 Python 中使用协议时,使用结构子类型,因此不必继承协议类。如果你想把某个类看作是协议的一个子类型,你只需要用相同的函数签名实现所有协议方法。
评论
Protocol
from typing import Protocol