21
namedtuple และค่าดีฟอลต์สำหรับอาร์กิวเมนต์คำหลักเพิ่มเติม
ฉันพยายามที่จะแปลงคลาส "data" ที่มีลักษณะเป็นโพรงยาวให้เป็น tuple ที่มีชื่อ ชั้นเรียนของฉันดูเหมือนว่านี้: class Node(object): def __init__(self, val, left=None, right=None): self.val = val self.left = left self.right = right หลังจากแปลงnamedtupleเป็นดูเหมือน: from collections import namedtuple Node = namedtuple('Node', 'val left right') แต่มีปัญหาอยู่ที่นี่ คลาสดั้งเดิมของฉันอนุญาตให้ฉันส่งผ่านค่าและดูแลค่าเริ่มต้นโดยใช้ค่าเริ่มต้นสำหรับอาร์กิวเมนต์ที่ระบุชื่อ / คำหลัก สิ่งที่ต้องการ: class BinaryTree(object): def __init__(self, val): self.root = Node(val) แต่สิ่งนี้ไม่ได้ผลในกรณีของ tuple ที่ชื่อว่า refactored …