ชั้นcollections.defaultdictใช้โรงงานเริ่มต้นที่ใช้ในการสร้างค่าเริ่มต้น
หากค่าที่มีอยู่ในdictวัตถุเหมือนจะเริ่มต้นFalseเช่นสามารถสร้าง:
d_false = defaultdict(bool)
เป็นวิธี pythonic มากที่สุดในการบรรลุเหมือนกันสำหรับค่าเริ่มต้นTrueคืออะไร?
ในแง่อื่น ๆ จะมีวัตถุ callable มาตรฐานกลับTrueซึ่งจะใช้ idiomatically เป็นญาติของbool?
แน่นอนว่าโรงงานสามารถสร้างเป็นรูปแลมบ์ดาได้:
d_true = defaultdict(lambda: True)
แต่นี่อาจเป็นการพลิกโฉมพวงมาลัย
int() == 0, list() == [], str() == ''ฯลฯ ดังนั้นผมจึงไม่คิดว่ามีวิธีมาตรฐานในการทำเช่นนี้
lambda: valueสร้างเป็นวิธีสำนวนโวหารเพื่อสร้าง dict ที่มีค่าเริ่มต้นคงที่; Trueฉันรู้ว่าไม่มีวิธีที่ง่ายที่จะได้รับฟังก์ชั่นกลับมา
object()เป็นจริง - ไม่แน่ใจว่าเป็นประโยชน์
lambda: Trueใช้ได้ตราบใดที่คุณไม่จำเป็นต้องดองคำสั่งเริ่มต้นนั้น