如何声明返回对象数组的函数?

时间:2018-04-25 00:46:07

标签: python-3.x pycharm

刚开始使用python(来自.Net)。我试图弄清楚如何声明一个返回对象列表的函数:

class myObj:
  def __init__(self):
    self.myValue1: int=1
    self.myValue2: float=2.1

class myOwner:
  def __init__(self):
    self.myListofObj: myObj=[]

  def getMyListOfObj(self): # <== Here
    return self.myListOfObj
  1. getMyListOfObj()声明中,我如何提示IDE(Pycharm)此方法将返回array myObj而不是myObj object?例如,如果我这样做:

    xx = [在newOwner.getListOfObj()中的一个

  2. Pycharm会认为它正在返回array,而不是def getMyListOfObj(self) -> []: 。我知道:

    array of myObj

    但这并不表示它是array,只是self.myListofObj: myObj=[]

    1. 在声明array的行上,这是声明myObj @POST("login") Call<LoginResponse> Login(@Query("email") String email, @Query("password") String password); 的正确方法吗?

2 个答案:

答案 0 :(得分:0)

Python中的变量是无类型名称。您可以通过使用赋值初始化变量来创建变量。当我运行你的代码时,我得到了这个。

$ python test.py
  File "test.py", line 3
    self.myValue1: int=1
                 ^
SyntaxError: invalid syntax
$ 

我不清楚你要做什么。也许这就是。

class myObj:
  def __init__(self, x = 0, y = 0):
    self.myValue1 = x
    self.myValue2 = y

class myOwner:
  def __init__(self):
    self.myListofObj = []

  def getMyListOfObj(self): 
    return self.myListOfObj

答案 1 :(得分:0)

  1. 不,您的注释意味着self.myListOfObjmyObj
  2. 以下列方式标记:self.myListOfObj: typing.List[myObj] = []

    1. 请检查PEP 484