วิธีพิมพ์ Check in Python เมื่อ Dictionary มี Data Type ต่างกัน
เมื่อเร็ว ๆ นี้ฉันได้หยิบนิสัยของการตรวจสอบประเภท ท่านสามารถเข้าดูของฉันโพสต์ก่อนหน้านี้ที่นี่ อย่างไรก็ตามฉันพบปัญหาในไม่ช้าtargetอาร์กิวเมนต์ของฉันคือdictคู่คีย์ - ค่าที่มี 7 คู่ แต่ไม่ใช่ทั้งหมดที่มีประเภทข้อมูลประเภทเดียวกัน ไวยากรณ์ด้านล่างนี้เป็นวิธีที่ถูกต้องหรือไม่? ดูเหมือนจะยุ่งยากมากที่จะทำเช่นนั้น
def augmentate(self, image: np.ndarray, target: [Dict[str, np.ndarray],
Dict[str, torch.Tensor],
Dict[str, torch.Tensor],
Dict[str, torch.Tensor],
Dict[str, torch.Tensor],
Dict[str, torch.Tensor],
Dict[str, torch.Tensor]]):
คำตอบ
มันขึ้นอยู่กับเจตนาของคุณจริงๆ
target: Union[Dict[str, np.ndarray],Dict[str, torch.Tensor]]
เป็นทั้งพจนานุกรมจากสตริงเป็น ndarray หรือคำสั่งจากสตริงถึงเทนเซอร์
target: Dict[str, Union[np.ndarray, torch.Tensor]]
คือพจนานุกรมจากสตริงเป็น ndarray หรือเทนเซอร์
ดังนั้นอดีตอาจเป็นหนึ่งในพจนานุกรมที่เป็นเนื้อเดียวกันได้หลายประเภทในขณะที่พจนานุกรมแบบหลังเป็นพจนานุกรมที่ไม่เหมือนกัน
การตรวจสอบประเภทของคุณควรอธิบายประเภททั้งหมดที่วิธีการของคุณออกแบบมาเพื่อจัดการ ในกรณีของคุณดูเหมือนว่าจะเป็นสองประเภทซึ่งประเภทของสหภาพอธิบาย:
def augmentate(self, image: np.ndarray, target: Dict[str, Union[np.ndarray, torch.Tensor]]):