我已经在互联网上进行了搜索,但是我想不出一种方法来制作一个需要特定对象的Python列表。
我要实现的目标将在C#中描述为:new List<MyObject>()
,然后将创建一个将某个对象作为输入的新列表。
现在,我无法找到任何方法可以在Python中实现这一目标。
我试图这样定义一类潮汐信息:
from models.tideTime import TideTime
class Tides:
def __init__(self, currentTide: str, movement: str, tideTimes: list):
self.currentTide = currentTide
self.movement = movement
self.tideTimes = tideTimes
有问题的列表中应该有一个“ TideTime”对象的列表,而不仅仅是任何普通列表。这个TideTime对象是在models目录中定义为的另一个类,
class TideTime:
def __init__(self, time: str, height: str):
self.time = time
self.height = height
有人知道怎么做吗?
我知道这并不重要,因为在一天结束时,我仍然可以用另一边的TideTime对象列表来调用它,但是出于简洁代码的目的和长寿,我想确保将列表输入到此对象始终是正确的类型,而不是突然str
。
任何帮助将不胜感激。
答案 0 :(得分:2)
您正在寻找类型提示List[TideTime]
,其中List
是从typing
模块导入的。
from typing import List
from models import TideTime
class Tides:
def __init__(self, currentTide: str, movement: str, tideTimes: List[TideTime]):
self.currentTide = currentTide
self.movement = movement
self.tideTimes = tideTimes
Python本身会忽略类型提示,但是如果您尝试在源代码中传递其他内容,则类似mypy
的工具可以帮助捕获。如果没有其他要求,则更准确的提示可以更好地记录该函数的 intent 。