ฉันมีคลาส tuple ชื่อในหลาม
class Town(collections.namedtuple('Town', [
'name',
'population',
'coordinates',
'population',
'capital',
'state_bird'])):
# ...
ฉันต้องการแปลงอินสแตนซ์ทาวน์เป็นพจนานุกรม ฉันไม่ต้องการให้มันผูกติดอยู่กับชื่อหรือจำนวนของฟิลด์ในเมือง
มีวิธีเขียนเช่นนี้หรือไม่ที่ฉันสามารถเพิ่มเขตข้อมูลเพิ่มเติมหรือส่งชื่อ tuple ที่แตกต่างไปจากเดิมอย่างสิ้นเชิงและรับพจนานุกรม
ฉันไม่สามารถแก้ไขคำจำกัดความของคลาสเดิมได้ในรหัสของผู้อื่น ดังนั้นฉันต้องใช้อินสแตนซ์ของเมืองและแปลงเป็นพจนานุกรม
dict
แทน 'namedtuple' และผ่าน namedtuple ลง initializer โปรดจำไว้ว่าหากคุณคุ้นเคยกับ Cxx class Town(x)
ไม่ใช่ผู้สร้างซึ่งdef __init__(self, *args, **kwargs)
อยู่ภายใน
dir
เป็นเพียงไพ ธ อนในตัว ... คุณสามารถรันมันบนออบเจ็กต์หลามใด ๆในคอนโซลหรือในสคริปต์ (ซึ่งจะส่งคืนรายการที่คุณสามารถพิมพ์หรือทำอะไรก็ได้) และมันจะส่งคืนรายการของ (เกือบ ) คุณสมบัติทั้งหมดของวัตถุ มีประโยชน์ถ้าคุณพยายามคิดว่าวัตถุที่ไม่รู้จักทำงานอย่างไร
dir
คำสั่งซึ่งจะแสดงฟิลด์สำหรับวัตถุใด ๆ ... ที่จะแสดง_asdict
ฟังก์ชั่นโดยตรง