【发布时间】:2020-07-12 16:31:01
【问题描述】:
所以我有这样的 Python 3 代码:
from abc import ABC, abstractmethod
from datetime import datetime
class IfaceA(ABC):
@abstractmethod
def pass_data(self, data: str):
pass
class IfaceB(ABC):
@abstractmethod
def pass_data(self, data: datetime):
pass
class MyClass(IfaceA, IfaceB):
def pass_data(self, data: str):
print("str", data)
def pass_data(self, data: datetime):
print("datetime", data)
def main():
c = MyClass()
c.pass_data("Any string.")
c.pass_data(datetime.now())
if __name__ == "__main__":
main()
它给了我这样的输出:
datetime Any string.
datetime 2020-07-13 02:00:34.676715
未使用带有 str 参数的 IfaceA.pass_data 方法。
有没有办法让这项工作像在 C++ 中一样工作?
【问题讨论】:
标签: python python-3.x interface polymorphism overloading