class A(object):
def __init__(self):
self.b = 5
self.c = 0
class B(A):
def __init__(self):
self.e = 10
self.d = 11
def jojo(li):
return li[1]
def lala():
a = [A(), B()]
b = jojo(a)
return b
lala()
如何让PyCharm(或任何IDE)的自动完成功能建议我将b,c,d和e作为lala()的属性。 我可以在某处定义自定义列表吗?
答案 0 :(得分:1)
Python 3的解决方案
如果可以列出所有可能性,您可以使用Union type。
我添加了C
类,因为它不在A
和B
类层次结构中,因此示例将更清晰,更全面。
from typing import Union
class A(object):
def __init__(self):
self.b = 5
self.c = 0
class B(A):
def __init__(self):
self.e = 10
self.d = 11
class C:
def __init__(self):
self.f = 12
def jojo(li):
return li[1]
def lala() -> Union[A, B, C]:
a = [A(), B(), C()]
b = jojo(a)
return b
lala()
答案 1 :(得分:0)
对于PYTHON 2
class A(object):
def __init__(self):
self.b = 5
self.c = 0
class B(A):
def __init__(self):
self.e = 10
self.d = 11
def jojo(li):
return li[1]
def lala():
# type: () -> B
a = [A(), B()]
b = jojo(a)
return b
lala()
Union不起作用,因此只能传递一个类