คำถามติดแท็ก optional-arguments

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 …

2
ฉันจะสร้างฟังก์ชัน Python ด้วยอาร์กิวเมนต์ที่เป็นทางเลือกได้อย่างไร
ฉันมีฟังก์ชั่น Python ซึ่งใช้อาร์กิวเมนต์หลายตัว อาจมีการข้ามข้อโต้แย้งบางอย่างในบางสถานการณ์ def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None): #code ข้อโต้แย้งdผ่านhคือสตริงที่แต่ละอันมีความหมายต่างกัน เป็นสิ่งสำคัญที่ฉันสามารถเลือกพารามิเตอร์ทางเลือกที่จะผ่านในชุดค่าผสมใด ๆ ตัวอย่างเช่น(a, b, C, d, e)หรือ(a, b, C, g, h)หรือ(a, b, C, d, e, fหรือทั้งหมด (นี่คือตัวเลือกของฉัน) มันจะดีมากถ้าฉันสามารถโอเวอร์โหลดฟังก์ชั่น - แต่ฉันอ่านว่า Python ไม่รองรับการโอเวอร์โหลด ฉันพยายามแทรกอาร์กิวเมนต์บางตัวที่จำเป็นในรายการ …


6
LaTeX อาร์กิวเมนต์เสริม
คุณสร้างคำสั่งพร้อมอาร์กิวเมนต์ที่เป็นทางเลือกใน LaTeX ได้อย่างไร? สิ่งที่ต้องการ: \newcommand{\sec}[2][]{ \section*{#1 \ifsecondargument and #2 \fi} } } จากนั้นฉันสามารถเรียกมันว่า \sec{Hello} %Output: Hello \sec{Hello}{Hi} %Output: Hello and Hi

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.