python - 如何暗示变量是从另一个类继承的类?
问题描述
考虑这个人为的代码片段:
class Fooer():
def __init__(self, *args, **kwargs):
# do things
def foo(self) -> int:
# do more things
def foo(fooer, *args, **kwargs) -> int:
return x(*args, **kwargs).foo()
我想暗示 to 的fooer
论点foo()
应该是Fooer
. 它不是 的实例Fooer
,它Fooer
本身或其子类。我能想到的最好的是
def foo(fooer: type, *args, **kwargs) -> int
这还不够具体。
我怎样才能更好地暗示这一点?
解决方案
从 PEP-484(类对象的类型)开始,解决方案是用来Type[C]
指示 的子类C
,其中C
var 是由基类限定的类型。
F = TypeVar('F', bound=Fooer)
def foo(fooer: Type[F], *args,**kwargs) -> int:
...
(公平地说,我不太明白在TypeVar
此处使用 PEP-484 与在@es 的答案中使用类本身之间的区别。)
推荐阅读
- node.js - 节点加密 - 定义输出密码长度
- sql - 如何将连接子图 ID 分配给 Oracle SQL 中无向图中的每个节点?
- python - Pandas:针对每个列表项搜索 df 列,从 df 列中弹出匹配值
- python - python 21纸牌游戏问题
- reactjs - 休息时的管理员会在同一个选项卡上与 cloudinary/postgres 很好地配合吗?
- java - Spring MVC:如何在一张表中连接两个模型
- c# - 如何在 Hierarchy 上下文菜单中向 GameObject 添加选项?
- c# - 无法在 Visual Studio 中添加 TabControl
- json - 如何在不反序列化的情况下将 JSON 保存到 Azure 中的表存储?
- javascript - 更改 Navbar-logo onScroll 的不透明度