พิมพ์คำอธิบายประกอบสำหรับ * args และ ** kwargs
ฉันกำลังลองใช้คำอธิบายประกอบชนิดของ Python พร้อมคลาสเบสที่เป็นนามธรรมเพื่อเขียนอินเตอร์เฟส มีวิธีการอธิบายประเภทที่เป็นไปได้*argsและ**kwargs? ตัวอย่างเช่นเราจะแสดงให้เห็นว่าข้อโต้แย้งที่สมเหตุสมผลกับฟังก์ชั่นนั้นเป็นได้intหรือintไม่? type(args)ให้Tupleเดาว่าฉันจะอธิบายชนิดเป็นUnion[Tuple[int, int], Tuple[int]]แต่ไม่ได้ผล from typing import Union, Tuple def foo(*args: Union[Tuple[int, int], Tuple[int]]): try: i, j = args return i + j except ValueError: assert len(args) == 1 i = args[0] return i # ok print(foo((1,))) print(foo((1, 2))) # mypy does not like this print(foo(1)) …