我使用一个子类内置列表的类.
class Qry(list):
"""Stores a list indexable by attributes."""
def filter(self, **kwargs):
"""Returns the items in Qry that has matching attributes.
Example:
obj.filter(portfolio='123', account='ABC').
"""
values = tuple(kwargs.values())
def is_match(item):
if tuple(getattr(item, y) for y in kwargs.keys()) == values:
return True
else:
return False
result = Qry([x for x in self if is_match(x)], keys=self._keys)
return result
Run Code Online (Sandbox Code Playgroud)
现在我要输入提示:
class C:
a = 1
def foo(qry: Qry[C]):
"""Do stuff here."""
Run Code Online (Sandbox Code Playgroud)
如何在python 3.5+中键入提示自定义容器类?
你可以很容易地做到这一点:
from typing import TypeVar, List
T = TypeVar('T')
class MyList(List[T]): # note the upper case
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |