我有一个关于对映射使用部分专门化时的类型提示的问题。在
请参阅下面的示例代码:类型PairLeftRight
是一种Dict[Side, Any]
。在
函数test_pair
将接受一个特殊类型:PairLeftRight[MyClass]
。在
我希望能够向这个函数添加类型提示,这样我的IDE(pycharm)可以帮助我自动完成“MyClass”中的可用方法
有可能吗?在
import typing
from enum import Enum
VT = typing.TypeVar('T') # Any value type.
class Side(Enum):
Left = "Left"
Right = "Right"
Sides = [Side.Left, Side.Right]
class PairLeftRight(typing.Dict[Side, VT]):
pass
class MyClass(object):
def __init__(self, name):
self.name = name
def hello(self):
print("Hello " + self.name)
# Here, I want to speficy that the input is a PairleftRight[MyClass]
def test_pair(pair : PairLeftRight[MyClass]):
for side in Sides:
# Here I would like my IDE (pycharm) to help me by auto-completing
# the available methods in `MyClass`
pair[side].hello()
def test():
a = PairLeftRight()
a[Side.Left] = MyClass("Robert")
a[Side.Right] = MyClass("Melissa")
test_pair(a)
test()
目前没有回答
相关问题 更多 >
编程相关推荐