我有一种情况,在第一类中我声明了数组,并将它传递给另一个对象,该对象打印该数组中元素的名称。它有效,但是当我输入“汽车”时。在 ReadCarNames ide 中不建议我“名称”?我正在 wing ide 4 pro 中尝试。我可以在 ReadCarNames 方法中转换汽车吗?
########################################################################
class MyClass:
""""""
#----------------------------------------------------------------------
def __init__(self):
cars=[]
cars.append(Car('bmw'))
cars.append(Car('audi'))
reader=Reader()
reader.ReadCarNames(cars)
########################################################################
class Car:
""""""
#----------------------------------------------------------------------
def __init__(self,name):
self.name=name
########################################################################
class Reader:
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
def ReadCarNames(self,cars):
for counter,car in enumerate(cars):
print str(counter) +' '+ car.name
请您参考如下方法:
看这里: http://www.wingware.com/doc/edit/helping-wing-analyze-code
您的 IDE (Wing) 不确定 cars 中的对象是什么类型,但是您可以告诉它 car 是什么带有断言语句,它将完全按照您的意愿进行自动完成。只要你愿意,你可以把它看作是为 Wing 的眼睛类型转换类型。
class Reader:
def __init__(self):
"""Constructor"""
def ReadCarNames(self,cars):
for counter,car in enumerate(cars):
assert isinstance(car, Car) # this trains Wing
print str(counter) +' '+ car.name # autocompletion will work here
或者如果您不希望断言一直触发,您可以将其包装在 Wing 的 SourceAssistant 拾取但 python 不会执行的“if 0”逻辑中。
if 0: assert isinstance(car, Car)
您目前无法告诉 Wing 列表/元组/等仅包含一种类型的对象及其内容,但它在他们的计划中并将使用类似的语法。
