ถ้าฉันมีฟังก์ชั่นเช่นนี้:
def foo(name, opts={}):
pass
และฉันต้องการเพิ่มคำแนะนำประเภทให้กับพารามิเตอร์ฉันจะทำอย่างไร วิธีที่ฉันคิดว่าจะทำให้ฉันมีข้อผิดพลาดทางไวยากรณ์:
def foo(name: str, opts={}: dict) -> str:
pass
ต่อไปนี้ไม่ได้เกิดข้อผิดพลาดทางไวยากรณ์ แต่ดูเหมือนจะเป็นวิธีที่ใช้งานง่ายในการจัดการกรณีนี้:
def foo(name: str, opts: dict={}) -> str:
pass
ฉันไม่พบสิ่งใดในtyping
เอกสารหรือในการค้นหาของ Google
แก้ไข: ฉันไม่ทราบว่าอาร์กิวเมนต์เริ่มต้นทำงานอย่างไรใน Python แต่เพื่อคำถามนี้ฉันจะเก็บตัวอย่างข้างต้น โดยทั่วไปการทำสิ่งต่อไปนี้ดีกว่ามาก:
def foo(name: str, opts: dict=None) -> str:
if not opts:
opts={}
pass
scala
ภาษาทำเช่นกัน