में डिफ़ॉल्ट कन्स्ट्रक्टर पैरामीटर मैं यह नहीं ढूंढ पा रहा हूं कि यह PyYAML दस्तावेज़ में कैसे करें। मैं वाईएएमएल में परिभाषित पायथन कक्षाओं का प्रतिनिधित्व करना चाहता हूं, और कन्स्ट्रक्टर में पैरामीटर को दिया गया डिफ़ॉल्ट मान है यदि यह वाईएएमएल में निर्दिष्ट नहीं है। उदाहरण के लिए:pyyaml
>>> class Test(yaml.YAMLObject):
... yaml_tag = u"!Test"
... def __init__(self, foo, bar=3):
... self.foo = foo
... self.bar = bar
... def __repr__(self):
... return "%s(foo=%r, bar=%r)" % (self.__class__.__name__, self.foo, self.bar)
...
>>> yaml.load("""
... --- !Test
... foo: 5
... """)
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "<stdin>", line 7, in __repr__
AttributeError: 'Test' object has no attribute 'bar'
मैं उम्मीद है कि यह बार = 3 के साथ एक टेस्ट वस्तु बनाने होगा, लेकिन मैं इसे अपने निर्माता नजरअंदाज जब यह वस्तु बनाता है लगता है। अगर मैं YAML में बार के लिए एक मानचित्रण में शामिल हैं, सब कुछ उम्मीद के रूप में काम करता है:
>>> yaml.load("""
... --- !Test
... foo: 5
... bar: 42
... """)
Test(foo=5, bar=42)
किसी को भी पता है कि कैसे मैं यह एक डिफ़ॉल्ट मान का उपयोग हो सकता है?