[{"data":1,"prerenderedAt":10149},["ShallowReactive",2],{"tutorials-python":3,"category-items-python":987,"content-/python/variable-visibility":988},[4,22,31,40,49,58,67,76,86,95,104,113,122,131,141,150,159,168,177,186,196,205,214,223,233,242,251,260,269,279,288,297,306,315,324,333,342,351,360,369,379,388,397,406,415,424,433,442,452,461,470,479,488,497,506,515,525,534,543,552,561,570,579,588,597,606,616,625,634,643,652,661,670,680,689,698,707,716,725,734,744,753,762,771,780,789,798,807,817,826,835,844,853,863,872,881,890,900,909,918,927,936,945,953,961,970,979],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"slug":11,"order":12,"isParent":13,"icon":14,"_type":15,"_id":16,"_source":17,"_file":18,"_stem":19,"_extension":20,"children":21,"expanded":13},"/python/getting-started","python",false,"","Getting Started","Begin your Python programming journey. Learn what Python is, how to set it up, and write your first programs. Perfect for complete beginners starting their coding adventure.","getting-started",1,true,"pi pi-folder","markdown","content:python:1.getting-started.md","content","python/1.getting-started.md","python/1.getting-started","md",[22,31,40,49,58,67],{"_path":23,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":24,"description":25,"slug":26,"parentId":5,"order":27,"_type":15,"_id":28,"_source":17,"_file":29,"_stem":30,"_extension":20},"/python/what-is-python","What is Python","Discover Python's fascinating history, design philosophy, and key features. Learn why Python has become one of the world's most popular programming languages and perfect for beginners.","what-is-python",2,"content:python:2.what-is-python.md","python/2.what-is-python.md","python/2.what-is-python",{"_path":32,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":33,"description":34,"slug":35,"parentId":5,"order":36,"_type":15,"_id":37,"_source":17,"_file":38,"_stem":39,"_extension":20},"/python/setup-python","Setup Python","Learn how to install Python on your computer and set up your development environment. Step-by-step guide for Windows, macOS, and Linux with beginner-friendly instructions.","setup-python",3,"content:python:3.setup-python.md","python/3.setup-python.md","python/3.setup-python",{"_path":41,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":42,"description":43,"slug":44,"parentId":5,"order":45,"_type":15,"_id":46,"_source":17,"_file":47,"_stem":48,"_extension":20},"/python/your-first-program","Your First Program","Write and run your first Python program! Learn the basics of Python programming with simple examples and step-by-step instructions for beginners.","your-first-program",4,"content:python:4.your-first-program.md","python/4.your-first-program.md","python/4.your-first-program",{"_path":50,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":51,"description":52,"slug":53,"parentId":5,"order":54,"_type":15,"_id":55,"_source":17,"_file":56,"_stem":57,"_extension":20},"/python/python-code-structure","Python Code Structure","Learn how Python code is organized and structured. Understand indentation, line breaks, and the basic rules that make Python programs work correctly.","python-code-structure",5,"content:python:5.python-code-structure.md","python/5.python-code-structure.md","python/5.python-code-structure",{"_path":59,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":60,"description":61,"slug":62,"parentId":5,"order":63,"_type":15,"_id":64,"_source":17,"_file":65,"_stem":66,"_extension":20},"/python/writing-comments","Writing Comments","Learn how to write effective comments in Python. Discover when and how to document your code to make it clear, maintainable, and easy to understand.","writing-comments",6,"content:python:6.writing-comments.md","python/6.writing-comments.md","python/6.writing-comments",{"_path":68,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":69,"description":70,"slug":71,"parentId":5,"order":72,"_type":15,"_id":73,"_source":17,"_file":74,"_stem":75,"_extension":20},"/python/working-with-variables","Working with Variables","Learn how to create, use, and manage variables in Python. Understand how to store data, change values, and follow naming conventions for clean, readable code.","working-with-variables",7,"content:python:7.working-with-variables.md","python/7.working-with-variables.md","python/7.working-with-variables",{"_path":77,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":78,"description":79,"slug":80,"order":81,"isParent":13,"icon":14,"_type":15,"_id":82,"_source":17,"_file":83,"_stem":84,"_extension":20,"children":85,"expanded":13},"/python/basic-data-types","Basic Data Types","Learn about Python's fundamental data types including numbers, text, and boolean values","basic-data-types",8,"content:python:8.basic-data-types.md","python/8.basic-data-types.md","python/8.basic-data-types",[86,95,104,113,122],{"_path":87,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":88,"description":89,"slug":90,"parentId":77,"order":91,"_type":15,"_id":92,"_source":17,"_file":93,"_stem":94,"_extension":20},"/python/understanding-data-types","Understanding Data Types","Learn how Python identifies different data types and why they're important for programming","understanding-data-types",9,"content:python:9.understanding-data-types.md","python/9.understanding-data-types.md","python/9.understanding-data-types",{"_path":96,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":97,"description":98,"slug":99,"parentId":77,"order":100,"_type":15,"_id":101,"_source":17,"_file":102,"_stem":103,"_extension":20},"/python/working-with-numbers","Working with Numbers","Learn about Python's numeric data types including integers and floats, and how to perform calculations","working-with-numbers",10,"content:python:10.working-with-numbers.md","python/10.working-with-numbers.md","python/10.working-with-numbers",{"_path":105,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":106,"description":107,"slug":108,"parentId":77,"order":109,"_type":15,"_id":110,"_source":17,"_file":111,"_stem":112,"_extension":20},"/python/text-and-strings","Text and Strings","Learn how to work with text data in Python using strings, including creation, manipulation, and formatting","text-and-strings",11,"content:python:11.text-and-strings.md","python/11.text-and-strings.md","python/11.text-and-strings",{"_path":114,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":115,"description":116,"slug":117,"parentId":77,"order":118,"_type":15,"_id":119,"_source":17,"_file":120,"_stem":121,"_extension":20},"/python/true-false-values","True/False Values","Learn about boolean values in Python, including True/False logic, comparison operations, and how to use booleans for decision-making in your programs","true-false-values",12,"content:python:12.true-false-values.md","python/12.true-false-values.md","python/12.true-false-values",{"_path":123,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":124,"description":125,"slug":126,"parentId":77,"order":127,"_type":15,"_id":128,"_source":17,"_file":129,"_stem":130,"_extension":20},"/python/converting-types","Converting Types","Learn how to convert between different Python data types including strings, numbers, and booleans","converting-types",13,"content:python:13.converting-types.md","python/13.converting-types.md","python/13.converting-types",{"_path":132,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":133,"description":134,"slug":135,"order":136,"isParent":13,"icon":14,"_type":15,"_id":137,"_source":17,"_file":138,"_stem":139,"_extension":20,"children":140,"expanded":13},"/python/python-operators","Python Operators","Learn about Python operators - the symbols and keywords that perform operations on data. Discover arithmetic, comparison, logical, and assignment operators with simple examples.","python-operators",14,"content:python:14.python-operators.md","python/14.python-operators.md","python/14.python-operators",[141,150,159,168,177],{"_path":142,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":143,"description":144,"slug":145,"parentId":132,"order":146,"_type":15,"_id":147,"_source":17,"_file":148,"_stem":149,"_extension":20},"/python/math-operations","Math Operations","Learn Python's arithmetic operators for mathematical calculations. Master addition, subtraction, multiplication, division, and more with practical examples.","math-operations",15,"content:python:15.math-operations.md","python/15.math-operations.md","python/15.math-operations",{"_path":151,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":152,"description":153,"slug":154,"parentId":132,"order":155,"_type":15,"_id":156,"_source":17,"_file":157,"_stem":158,"_extension":20},"/python/comparing-values","Comparing Values","Learn Python's comparison operators to compare values and make decisions. Master equality, inequality, and relational operators with practical examples.","comparing-values",16,"content:python:16.comparing-values.md","python/16.comparing-values.md","python/16.comparing-values",{"_path":160,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":161,"description":162,"slug":163,"parentId":132,"order":164,"_type":15,"_id":165,"_source":17,"_file":166,"_stem":167,"_extension":20},"/python/logic-operations","Logic Operations","Learn about Python's logical operators for combining conditions and creating complex boolean expressions","logic-operations",17,"content:python:17.logic-operations.md","python/17.logic-operations.md","python/17.logic-operations",{"_path":169,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":170,"description":171,"slug":172,"parentId":132,"order":173,"_type":15,"_id":174,"_source":17,"_file":175,"_stem":176,"_extension":20},"/python/value-assignment","Value Assignment","Learn about Python's assignment operators for efficiently updating variables and performing calculations","value-assignment",18,"content:python:18.value-assignment.md","python/18.value-assignment.md","python/18.value-assignment",{"_path":178,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":179,"description":180,"slug":181,"parentId":132,"order":182,"_type":15,"_id":183,"_source":17,"_file":184,"_stem":185,"_extension":20},"/python/operator-precedence","Operator Precedence","Learn how Python evaluates expressions with multiple operators and how to control evaluation order","operator-precedence",19,"content:python:19.operator-precedence.md","python/19.operator-precedence.md","python/19.operator-precedence",{"_path":187,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":188,"description":189,"slug":190,"order":191,"isParent":13,"icon":14,"_type":15,"_id":192,"_source":17,"_file":193,"_stem":194,"_extension":20,"children":195,"expanded":13},"/python/decision-making","Decision Making","Learn how to make decisions in your Python programs using conditional statements and control flow","decision-making",20,"content:python:20.decision-making.md","python/20.decision-making.md","python/20.decision-making",[196,205,214],{"_path":197,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":198,"description":199,"slug":200,"parentId":187,"order":201,"_type":15,"_id":202,"_source":17,"_file":203,"_stem":204,"_extension":20},"/python/if-statements","If Statements","Learn how to use if statements to make decisions and control program flow in Python","if-statements",21,"content:python:21.if-statements.md","python/21.if-statements.md","python/21.if-statements",{"_path":206,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":207,"description":208,"slug":209,"parentId":187,"order":210,"_type":15,"_id":211,"_source":17,"_file":212,"_stem":213,"_extension":20},"/python/multiple-conditions","Multiple Conditions","Learn how to handle multiple conditions using elif statements and complex conditional logic in Python","multiple-conditions",22,"content:python:22.multiple-conditions.md","python/22.multiple-conditions.md","python/22.multiple-conditions",{"_path":215,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":216,"description":217,"slug":218,"parentId":187,"order":219,"_type":15,"_id":220,"_source":17,"_file":221,"_stem":222,"_extension":20},"/python/pattern-matching","Pattern Matching","Learn how to use Python's match-case statements for powerful pattern matching and complex decision making","pattern-matching",23,"content:python:23.pattern-matching.md","python/23.pattern-matching.md","python/23.pattern-matching",{"_path":224,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":225,"description":226,"slug":227,"order":228,"isParent":13,"icon":14,"_type":15,"_id":229,"_source":17,"_file":230,"_stem":231,"_extension":20,"children":232,"expanded":13},"/python/repetition-and-loops","Python Loops","Learn how to use loops to repeat code efficiently and handle repetitive tasks in Python","repetition-and-loops",24,"content:python:24.repetition-and-loops.md","python/24.repetition-and-loops.md","python/24.repetition-and-loops",[233,242,251,260],{"_path":234,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":235,"description":236,"slug":237,"parentId":224,"order":238,"_type":15,"_id":239,"_source":17,"_file":240,"_stem":241,"_extension":20},"/python/while-loops","While Loops","Learn how to use while loops for condition-based repetition and create loops that run until specific conditions are met","while-loops",25,"content:python:25.while-loops.md","python/25.while-loops.md","python/25.while-loops",{"_path":243,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":244,"description":245,"slug":246,"parentId":224,"order":247,"_type":15,"_id":248,"_source":17,"_file":249,"_stem":250,"_extension":20},"/python/for-loops","For Loops","Learn how to use for loops to iterate through sequences, collections, and ranges efficiently in Python","for-loops",26,"content:python:26.for-loops.md","python/26.for-loops.md","python/26.for-loops",{"_path":252,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":253,"description":254,"slug":255,"parentId":224,"order":256,"_type":15,"_id":257,"_source":17,"_file":258,"_stem":259,"_extension":20},"/python/loop-control","Loop Control","Master advanced loop control techniques including break, continue, and else clauses for sophisticated iteration patterns","loop-control",27,"content:python:27.loop-control.md","python/27.loop-control.md","python/27.loop-control",{"_path":261,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":262,"description":263,"slug":264,"parentId":224,"order":265,"_type":15,"_id":266,"_source":17,"_file":267,"_stem":268,"_extension":20},"/python/nested-loops","Nested Loops","Learn how to use nested loops to process multi-dimensional data, create patterns, and handle complex iteration scenarios","nested-loops",28,"content:python:28.nested-loops.md","python/28.nested-loops.md","python/28.nested-loops",{"_path":270,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":271,"description":272,"slug":273,"order":274,"isParent":13,"icon":14,"_type":15,"_id":275,"_source":17,"_file":276,"_stem":277,"_extension":20,"children":278,"expanded":13},"/python/python-lists","Python Lists","Learn about Python lists, one of the most important and versatile data structures for storing and organizing collections of data","python-lists",29,"content:python:29.python-lists.md","python/29.python-lists.md","python/29.python-lists",[279,288,297,306,315,324,333,342,351,360],{"_path":280,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":281,"description":282,"slug":283,"parentId":270,"order":284,"_type":15,"_id":285,"_source":17,"_file":286,"_stem":287,"_extension":20},"/python/creating-lists","Creating Lists","Learn different methods to create and initialize Python lists, from simple literals to advanced techniques","creating-lists",30,"content:python:30.creating-lists.md","python/30.creating-lists.md","python/30.creating-lists",{"_path":289,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":290,"description":291,"slug":292,"parentId":270,"order":293,"_type":15,"_id":294,"_source":17,"_file":295,"_stem":296,"_extension":20},"/python/reading-list-data","Reading List Data","Master techniques for accessing and retrieving data from Python lists using indexing, slicing, and built-in methods","reading-list-data",31,"content:python:31.reading-list-data.md","python/31.reading-list-data.md","python/31.reading-list-data",{"_path":298,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":299,"description":300,"slug":301,"parentId":270,"order":302,"_type":15,"_id":303,"_source":17,"_file":304,"_stem":305,"_extension":20},"/python/modifying-lists","Modifying Lists","Learn how to change, update, and modify existing elements in Python lists using indexing and various methods","modifying-lists",32,"content:python:32.modifying-lists.md","python/32.modifying-lists.md","python/32.modifying-lists",{"_path":307,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":308,"description":309,"slug":310,"parentId":270,"order":311,"_type":15,"_id":312,"_source":17,"_file":313,"_stem":314,"_extension":20},"/python/adding-to-lists","Adding to Lists","Learn various methods to add elements to Python lists including append, insert, extend, and concatenation techniques","adding-to-lists",33,"content:python:33.adding-to-lists.md","python/33.adding-to-lists.md","python/33.adding-to-lists",{"_path":316,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":317,"description":318,"slug":319,"parentId":270,"order":320,"_type":15,"_id":321,"_source":17,"_file":322,"_stem":323,"_extension":20},"/python/removing-from-lists","Removing from Lists","Learn different methods to remove and delete elements from Python lists including remove, pop, del, and clear","removing-from-lists",34,"content:python:34.removing-from-lists.md","python/34.removing-from-lists.md","python/34.removing-from-lists",{"_path":325,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":326,"description":327,"slug":328,"parentId":270,"order":329,"_type":15,"_id":330,"_source":17,"_file":331,"_stem":332,"_extension":20},"/python/looping-through-lists","Looping Through Lists","Learn different ways to iterate through Python lists using for loops, while loops, enumerate, and other iteration techniques","looping-through-lists",35,"content:python:35.looping-through-lists.md","python/35.looping-through-lists.md","python/35.looping-through-lists",{"_path":334,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":335,"description":336,"slug":337,"parentId":270,"order":338,"_type":15,"_id":339,"_source":17,"_file":340,"_stem":341,"_extension":20},"/python/list-shortcuts","List Shortcuts","Learn powerful Python list shortcuts including list comprehensions, slicing tricks, and built-in functions for efficient list operations","list-shortcuts",36,"content:python:36.list-shortcuts.md","python/36.list-shortcuts.md","python/36.list-shortcuts",{"_path":343,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":344,"description":345,"slug":346,"parentId":270,"order":347,"_type":15,"_id":348,"_source":17,"_file":349,"_stem":350,"_extension":20},"/python/organizing-lists","Organizing Lists","Learn how to sort, reverse, and organize Python lists using built-in methods and custom sorting techniques","organizing-lists",37,"content:python:37.organizing-lists.md","python/37.organizing-lists.md","python/37.organizing-lists",{"_path":352,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":353,"description":354,"slug":355,"parentId":270,"order":356,"_type":15,"_id":357,"_source":17,"_file":358,"_stem":359,"_extension":20},"/python/combining-lists","Combining Lists","Learn various techniques to combine, merge, and join Python lists including concatenation, zipping, and advanced merging strategies","combining-lists",38,"content:python:38.combining-lists.md","python/38.combining-lists.md","python/38.combining-lists",{"_path":361,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":362,"description":363,"slug":364,"parentId":270,"order":365,"_type":15,"_id":366,"_source":17,"_file":367,"_stem":368,"_extension":20},"/python/essential-list-tools","Essential List Tools","Master powerful built-in functions and advanced techniques for efficient Python list manipulation and data processing","essential-list-tools",39,"content:python:39.essential-list-tools.md","python/39.essential-list-tools.md","python/39.essential-list-tools",{"_path":370,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":371,"description":372,"slug":373,"order":374,"isParent":13,"icon":14,"_type":15,"_id":375,"_source":17,"_file":376,"_stem":377,"_extension":20,"children":378,"expanded":13},"/python/python-tuples","Python Tuples","Master Python tuples - immutable sequences perfect for storing related data that shouldn't change. Learn creation, access, and manipulation techniques.","python-tuples",40,"content:python:40.python-tuples.md","python/40.python-tuples.md","python/40.python-tuples",[379,388,397,406,415,424,433],{"_path":380,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":381,"description":382,"slug":383,"parentId":370,"order":384,"_type":15,"_id":385,"_source":17,"_file":386,"_stem":387,"_extension":20},"/python/creating-tuples","Creating Tuples","Learn different ways to create Python tuples, from basic syntax to advanced techniques. Master tuple initialization and understand when to use tuples.","creating-tuples",41,"content:python:41.creating-tuples.md","python/41.creating-tuples.md","python/41.creating-tuples",{"_path":389,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":390,"description":391,"slug":392,"parentId":370,"order":393,"_type":15,"_id":394,"_source":17,"_file":395,"_stem":396,"_extension":20},"/python/reading-tuple-data","Reading Tuple Data","Master accessing tuple elements through indexing, slicing, and searching. Learn efficient patterns for reading and working with tuple data.","reading-tuple-data",42,"content:python:42.reading-tuple-data.md","python/42.reading-tuple-data.md","python/42.reading-tuple-data",{"_path":398,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":399,"description":400,"slug":401,"parentId":370,"order":402,"_type":15,"_id":403,"_source":17,"_file":404,"_stem":405,"_extension":20},"/python/changing-tuples","Changing Tuples","Understand tuple immutability and learn techniques for working with unchangeable data. Master creating modified tuple versions and handling immutable constraints.","changing-tuples",43,"content:python:43.changing-tuples.md","python/43.changing-tuples.md","python/43.changing-tuples",{"_path":407,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":408,"description":409,"slug":410,"parentId":370,"order":411,"_type":15,"_id":412,"_source":17,"_file":413,"_stem":414,"_extension":20},"/python/tuple-unpacking","Tuple Unpacking","Master tuple unpacking for elegant variable assignment, function returns, and data extraction. Learn Python's powerful unpacking syntax and patterns.","tuple-unpacking",44,"content:python:44.tuple-unpacking.md","python/44.tuple-unpacking.md","python/44.tuple-unpacking",{"_path":416,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":417,"description":418,"slug":419,"parentId":370,"order":420,"_type":15,"_id":421,"_source":17,"_file":422,"_stem":423,"_extension":20},"/python/iterating-tuples","Iterating Tuples","Master tuple iteration techniques for processing sequence data. Learn basic loops, enumerate, nested iteration, and advanced patterns for efficient data processing.","iterating-tuples",45,"content:python:45.iterating-tuples.md","python/45.iterating-tuples.md","python/45.iterating-tuples",{"_path":425,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":426,"description":427,"slug":428,"parentId":370,"order":429,"_type":15,"_id":430,"_source":17,"_file":431,"_stem":432,"_extension":20},"/python/merging-tuples","Merging Tuples","Learn techniques for combining and merging tuples to create larger data structures. Master concatenation, joining multiple tuples, and advanced merging patterns.","merging-tuples",46,"content:python:46.merging-tuples.md","python/46.merging-tuples.md","python/46.merging-tuples",{"_path":434,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":435,"description":436,"slug":437,"parentId":370,"order":438,"_type":15,"_id":439,"_source":17,"_file":440,"_stem":441,"_extension":20},"/python/tuple-operations","Tuple Operations","Master comprehensive tuple operations including built-in functions, mathematical operations, comparisons, and advanced techniques for efficient tuple manipulation.","tuple-operations",47,"content:python:47.tuple-operations.md","python/47.tuple-operations.md","python/47.tuple-operations",{"_path":443,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":444,"description":445,"slug":446,"order":447,"isParent":13,"icon":14,"_type":15,"_id":448,"_source":17,"_file":449,"_stem":450,"_extension":20,"children":451,"expanded":13},"/python/python-sets","Python Sets","Discover Python sets - unique collections that automatically eliminate duplicates and provide powerful mathematical operations for data filtering and analysis.","python-sets",48,"content:python:48.python-sets.md","python/48.python-sets.md","python/48.python-sets",[452,461,470,479,488,497,506],{"_path":453,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":454,"description":455,"slug":456,"parentId":443,"order":457,"_type":15,"_id":458,"_source":17,"_file":459,"_stem":460,"_extension":20},"/python/creating-sets","Creating Sets","Learn multiple ways to create sets in Python including literal syntax, set() function, and set comprehensions. Master set creation from different data sources.","creating-sets",49,"content:python:49.creating-sets.md","python/49.creating-sets.md","python/49.creating-sets",{"_path":462,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":463,"description":464,"slug":465,"parentId":443,"order":466,"_type":15,"_id":467,"_source":17,"_file":468,"_stem":469,"_extension":20},"/python/reading-set-data","Reading Set Data","Learn how to access and examine set data in Python including membership testing, iteration, size checking, and converting sets to other data types.","reading-set-data",50,"content:python:50.reading-set-data.md","python/50.reading-set-data.md","python/50.reading-set-data",{"_path":471,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":472,"description":473,"slug":474,"parentId":443,"order":475,"_type":15,"_id":476,"_source":17,"_file":477,"_stem":478,"_extension":20},"/python/adding-to-sets","Adding to Sets","Learn how to add elements to sets in Python using add(), update(), and union operations. Master growing sets dynamically with single items and multiple elements.","adding-to-sets",51,"content:python:51.adding-to-sets.md","python/51.adding-to-sets.md","python/51.adding-to-sets",{"_path":480,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":481,"description":482,"slug":483,"parentId":443,"order":484,"_type":15,"_id":485,"_source":17,"_file":486,"_stem":487,"_extension":20},"/python/removing-from-sets","Removing from Sets","Learn how to remove elements from Python sets using different methods like remove(), discard(), pop(), and clear()","removing-from-sets",52,"content:python:52.removing-from-sets.md","python/52.removing-from-sets.md","python/52.removing-from-sets",{"_path":489,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":490,"description":491,"slug":492,"parentId":443,"order":493,"_type":15,"_id":494,"_source":17,"_file":495,"_stem":496,"_extension":20},"/python/iterating-sets","Iterating Sets","Learn different ways to iterate through Python sets using for loops, comprehensions, and built-in functions","iterating-sets",53,"content:python:53.iterating-sets.md","python/53.iterating-sets.md","python/53.iterating-sets",{"_path":498,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":499,"description":500,"slug":501,"parentId":443,"order":502,"_type":15,"_id":503,"_source":17,"_file":504,"_stem":505,"_extension":20},"/python/combining-sets","Combining Sets","Learn how to combine Python sets using union, intersection, difference, and other set operations","combining-sets",54,"content:python:54.combining-sets.md","python/54.combining-sets.md","python/54.combining-sets",{"_path":507,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":508,"description":509,"slug":510,"parentId":443,"order":511,"_type":15,"_id":512,"_source":17,"_file":513,"_stem":514,"_extension":20},"/python/set-operations","Set Operations","Learn advanced Python set operations including comparisons, subsets, supersets, and mathematical set relationships","set-operations",55,"content:python:55.set-operations.md","python/55.set-operations.md","python/55.set-operations",{"_path":516,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":517,"description":518,"slug":519,"order":520,"isParent":13,"icon":14,"_type":15,"_id":521,"_source":17,"_file":522,"_stem":523,"_extension":20,"children":524,"expanded":13},"/python/python-dictionaries","Python Dictionaries","Learn about Python dictionaries - key-value data structures for storing and organizing related information","python-dictionaries",56,"content:python:56.python-dictionaries.md","python/56.python-dictionaries.md","python/56.python-dictionaries",[525,534,543,552,561,570,579,588,597],{"_path":526,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":527,"description":528,"slug":529,"parentId":516,"order":530,"_type":15,"_id":531,"_source":17,"_file":532,"_stem":533,"_extension":20},"/python/creating-dictionaries","Creating Dictionaries","Learn different methods to create Python dictionaries using literals, constructors, and comprehensions","creating-dictionaries",57,"content:python:57.creating-dictionaries.md","python/57.creating-dictionaries.md","python/57.creating-dictionaries",{"_path":535,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":536,"description":537,"slug":538,"parentId":516,"order":539,"_type":15,"_id":540,"_source":17,"_file":541,"_stem":542,"_extension":20},"/python/getting-dictionary-values","Getting Dictionary Values","Learn safe and efficient methods to retrieve data from Python dictionaries using various access techniques","getting-dictionary-values",58,"content:python:58.getting-dictionary-values.md","python/58.getting-dictionary-values.md","python/58.getting-dictionary-values",{"_path":544,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":545,"description":546,"slug":547,"parentId":516,"order":548,"_type":15,"_id":549,"_source":17,"_file":550,"_stem":551,"_extension":20},"/python/updating-dictionaries","Updating Dictionaries","Learn how to modify and maintain Python dictionary data using various update methods and techniques","updating-dictionaries",59,"content:python:59.updating-dictionaries.md","python/59.updating-dictionaries.md","python/59.updating-dictionaries",{"_path":553,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":554,"description":555,"slug":556,"parentId":516,"order":557,"_type":15,"_id":558,"_source":17,"_file":559,"_stem":560,"_extension":20},"/python/adding-dictionary-items","Adding Dictionary Items","Learn effective techniques for adding new items to Python dictionaries with various methods and best practices","adding-dictionary-items",60,"content:python:60.adding-dictionary-items.md","python/60.adding-dictionary-items.md","python/60.adding-dictionary-items",{"_path":562,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":563,"description":564,"slug":565,"parentId":516,"order":566,"_type":15,"_id":567,"_source":17,"_file":568,"_stem":569,"_extension":20},"/python/deleting-dictionary-items","Deleting Dictionary Items","Master safe and efficient techniques for removing items from Python dictionaries with various methods and error handling","deleting-dictionary-items",61,"content:python:61.deleting-dictionary-items.md","python/61.deleting-dictionary-items.md","python/61.deleting-dictionary-items",{"_path":571,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":572,"description":573,"slug":574,"parentId":516,"order":575,"_type":15,"_id":576,"_source":17,"_file":577,"_stem":578,"_extension":20},"/python/looping-dictionaries","Looping Dictionaries","Learn efficient techniques for iterating through Python dictionaries using keys, values, and items","looping-dictionaries",62,"content:python:62.looping-dictionaries.md","python/62.looping-dictionaries.md","python/62.looping-dictionaries",{"_path":580,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":581,"description":582,"slug":583,"parentId":516,"order":584,"_type":15,"_id":585,"_source":17,"_file":586,"_stem":587,"_extension":20},"/python/dictionary-copies","Dictionary Copies","Learn safe techniques for duplicating Python dictionaries using shallow and deep copy methods","dictionary-copies",63,"content:python:63.dictionary-copies.md","python/63.dictionary-copies.md","python/63.dictionary-copies",{"_path":589,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":590,"description":591,"slug":592,"parentId":516,"order":593,"_type":15,"_id":594,"_source":17,"_file":595,"_stem":596,"_extension":20},"/python/multi-level-dictionaries","Multi-level Dictionaries","Master working with nested Python dictionaries for complex data structures and hierarchical information","multi-level-dictionaries",64,"content:python:64.multi-level-dictionaries.md","python/64.multi-level-dictionaries.md","python/64.multi-level-dictionaries",{"_path":598,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":599,"description":600,"slug":601,"parentId":516,"order":602,"_type":15,"_id":603,"_source":17,"_file":604,"_stem":605,"_extension":20},"/python/dictionary-tools","Dictionary Tools","Explore powerful built-in functions and advanced techniques for efficient Python dictionary manipulation and analysis","dictionary-tools",65,"content:python:65.dictionary-tools.md","python/65.dictionary-tools.md","python/65.dictionary-tools",{"_path":607,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":608,"description":609,"slug":610,"order":611,"isParent":13,"icon":14,"_type":15,"_id":612,"_source":17,"_file":613,"_stem":614,"_extension":20,"children":615,"expanded":13},"/python/python-functions","Python Functions","Learn how to create and use Python functions to organize code into reusable, modular components that make programs more efficient and maintainable","python-functions",66,"content:python:66.python-functions.md","python/66.python-functions.md","python/66.python-functions",[616,625,634,643,652,661],{"_path":617,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":618,"description":619,"slug":620,"parentId":607,"order":621,"_type":15,"_id":622,"_source":17,"_file":623,"_stem":624,"_extension":20},"/python/function-basics","Function Basics","Learn the fundamentals of creating and using Python functions to organize code into reusable, modular components","function-basics",67,"content:python:67.function-basics.md","python/67.function-basics.md","python/67.function-basics",{"_path":626,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":627,"description":628,"slug":629,"parentId":607,"order":630,"_type":15,"_id":631,"_source":17,"_file":632,"_stem":633,"_extension":20},"/python/function-parameters","Function Parameters","Master different types of Python function parameters including positional, keyword, default, and variable-length arguments","function-parameters",68,"content:python:68.function-parameters.md","python/68.function-parameters.md","python/68.function-parameters",{"_path":635,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":636,"description":637,"slug":638,"parentId":607,"order":639,"_type":15,"_id":640,"_source":17,"_file":641,"_stem":642,"_extension":20},"/python/returning-values","Returning Values","Learn different ways Python functions return data including single values, multiple values, and conditional returns","returning-values",69,"content:python:69.returning-values.md","python/69.returning-values.md","python/69.returning-values",{"_path":644,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":645,"description":646,"slug":647,"parentId":607,"order":648,"_type":15,"_id":649,"_source":17,"_file":650,"_stem":651,"_extension":20},"/python/variable-scope","Variable Scope","Understand Python variable scope including local, global, and nonlocal variables and how they affect function behavior","variable-scope",70,"content:python:70.variable-scope.md","python/70.variable-scope.md","python/70.variable-scope",{"_path":653,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":654,"description":655,"slug":656,"parentId":607,"order":657,"_type":15,"_id":658,"_source":17,"_file":659,"_stem":660,"_extension":20},"/python/anonymous-functions","Anonymous Functions","Learn to create and use Python lambda functions for concise, inline function definitions and functional programming patterns","anonymous-functions",71,"content:python:71.anonymous-functions.md","python/71.anonymous-functions.md","python/71.anonymous-functions",{"_path":662,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":663,"description":664,"slug":665,"parentId":607,"order":666,"_type":15,"_id":667,"_source":17,"_file":668,"_stem":669,"_extension":20},"/python/function-recursion","Function Recursion","Master recursive functions in Python by learning how functions can call themselves to solve complex problems with elegant, mathematical solutions","function-recursion",72,"content:python:72.function-recursion.md","python/72.function-recursion.md","python/72.function-recursion",{"_path":671,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":672,"description":673,"slug":674,"order":675,"isParent":13,"icon":14,"_type":15,"_id":676,"_source":17,"_file":677,"_stem":678,"_extension":20,"children":679,"expanded":13},"/python/object-programming","Object Programming","Learn object-oriented programming (OOP) in Python - create classes, objects, and methods to build organized, reusable code","object-programming",73,"content:python:73.object-programming.md","python/73.object-programming.md","python/73.object-programming",[680,689,698,707,716,725],{"_path":681,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":682,"description":683,"slug":684,"parentId":671,"order":685,"_type":15,"_id":686,"_source":17,"_file":687,"_stem":688,"_extension":20},"/python/classes-and-objects","Classes and Objects","Learn to create Python classes and objects - the foundation of object-oriented programming for building reusable, organized code","classes-and-objects",74,"content:python:74.classes-and-objects.md","python/74.classes-and-objects.md","python/74.classes-and-objects",{"_path":690,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":691,"description":692,"slug":693,"parentId":671,"order":694,"_type":15,"_id":695,"_source":17,"_file":696,"_stem":697,"_extension":20},"/python/object-methods","Object Methods","Master object methods in Python - learn to define behaviors, work with parameters, and create interactive objects that respond to actions","object-methods",75,"content:python:75.object-methods.md","python/75.object-methods.md","python/75.object-methods",{"_path":699,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":700,"description":701,"slug":702,"parentId":671,"order":703,"_type":15,"_id":704,"_source":17,"_file":705,"_stem":706,"_extension":20},"/python/class-inheritance","Class Inheritance","Learn Python class inheritance - create specialized classes that build upon existing functionality while adding new features and behaviors","class-inheritance",76,"content:python:76.class-inheritance.md","python/76.class-inheritance.md","python/76.class-inheritance",{"_path":708,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":709,"description":710,"slug":711,"parentId":671,"order":712,"_type":15,"_id":713,"_source":17,"_file":714,"_stem":715,"_extension":20},"/python/method-overriding","Method Overriding","Master method overriding in Python - learn to customize inherited methods, use super(), and create specialized behaviors while maintaining inheritance benefits","method-overriding",77,"content:python:77.method-overriding.md","python/77.method-overriding.md","python/77.method-overriding",{"_path":717,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":718,"description":719,"slug":720,"parentId":671,"order":721,"_type":15,"_id":722,"_source":17,"_file":723,"_stem":724,"_extension":20},"/python/variable-visibility","Variable Visibility","Master Python variable visibility - learn public, protected, and private attributes to control access and create well-encapsulated classes","variable-visibility",78,"content:python:78.variable-visibility.md","python/78.variable-visibility.md","python/78.variable-visibility",{"_path":726,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":727,"description":728,"slug":729,"parentId":671,"order":730,"_type":15,"_id":731,"_source":17,"_file":732,"_stem":733,"_extension":20},"/python/special-methods","Special Methods","Master Python special methods (magic methods) - learn to implement __str__, __len__, __eq__ and more to make your classes work seamlessly with Python's built-in functions","special-methods",79,"content:python:79.special-methods.md","python/79.special-methods.md","python/79.special-methods",{"_path":735,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":736,"description":737,"slug":738,"order":739,"isParent":13,"icon":14,"_type":15,"_id":740,"_source":17,"_file":741,"_stem":742,"_extension":20,"children":743},"/python/advanced-concepts","Advanced Concepts","Master advanced Python programming concepts - work with dates, mathematics, JSON data, pattern matching, and more sophisticated programming techniques","advanced-concepts",80,"content:python:80.advanced-concepts.md","python/80.advanced-concepts.md","python/80.advanced-concepts",[744,753,762,771,780,789,798],{"_path":745,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":746,"description":747,"slug":748,"parentId":735,"order":749,"_type":15,"_id":750,"_source":17,"_file":751,"_stem":752,"_extension":20},"/python/working-with-dates","Working with Dates","Master Python date and time handling - work with datetime objects, format dates, calculate durations, and build time-aware applications","working-with-dates",81,"content:python:81.working-with-dates.md","python/81.working-with-dates.md","python/81.working-with-dates",{"_path":754,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":755,"description":756,"slug":757,"parentId":735,"order":758,"_type":15,"_id":759,"_source":17,"_file":760,"_stem":761,"_extension":20},"/python/mathematical-operations","Mathematical Operations","Master Python mathematical computing - use math functions, perform statistical calculations, and implement scientific computing for data analysis and problem-solving","mathematical-operations",82,"content:python:82.mathematical-operations.md","python/82.mathematical-operations.md","python/82.mathematical-operations",{"_path":763,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":764,"description":765,"slug":766,"parentId":735,"order":767,"_type":15,"_id":768,"_source":17,"_file":769,"_stem":770,"_extension":20},"/python/json-data","JSON Data","Master JSON data handling in Python - serialize and deserialize data, work with APIs, manage configuration files, and exchange data between applications","json-data",83,"content:python:83.json-data.md","python/83.json-data.md","python/83.json-data",{"_path":772,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":773,"description":774,"slug":775,"parentId":735,"order":776,"_type":15,"_id":777,"_source":17,"_file":778,"_stem":779,"_extension":20},"/python/package-management","Package Management","Master Python package management with pip and virtual environments - install libraries, manage dependencies, create isolated environments, and distribute packages professionally","package-management",85,"content:python:85.package-management.md","python/85.package-management.md","python/85.package-management",{"_path":781,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":782,"description":783,"slug":784,"parentId":735,"order":785,"_type":15,"_id":786,"_source":17,"_file":787,"_stem":788,"_extension":20},"/python/error-handling","Error Handling","Master Python error handling with try/except blocks, exception types, custom exceptions, debugging techniques, and best practices for robust application development","error-handling",86,"content:python:86.error-handling.md","python/86.error-handling.md","python/86.error-handling",{"_path":790,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":791,"description":792,"slug":793,"parentId":735,"order":794,"_type":15,"_id":795,"_source":17,"_file":796,"_stem":797,"_extension":20},"/python/getting-user-input","Getting User Input","Master user input handling in Python with input validation, data type conversion, interactive programs, and command-line interfaces for engaging user experiences","getting-user-input",87,"content:python:87.getting-user-input.md","python/87.getting-user-input.md","python/87.getting-user-input",{"_path":799,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":800,"description":801,"slug":802,"parentId":735,"order":803,"_type":15,"_id":804,"_source":17,"_file":805,"_stem":806,"_extension":20},"/python/text-formatting","Text Formatting","Master Python text formatting with f-strings, format methods, alignment, number formatting, and advanced techniques for professional, readable output","text-formatting",88,"content:python:88.text-formatting.md","python/88.text-formatting.md","python/88.text-formatting",{"_path":808,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":809,"description":810,"slug":811,"order":812,"isParent":13,"icon":14,"_type":15,"_id":813,"_source":17,"_file":814,"_stem":815,"_extension":20,"children":816},"/python/file-operations","File Operations","Master Python file handling with reading, writing, and managing files for data persistence and real-world applications","file-operations",89,"content:python:89.file-operations.md","python/89.file-operations.md","python/89.file-operations",[817,826,835,844],{"_path":818,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":819,"description":820,"slug":821,"parentId":808,"order":822,"_type":15,"_id":823,"_source":17,"_file":824,"_stem":825,"_extension":20},"/python/file-basics","File Basics","Learn fundamental Python file operations including opening files, understanding file modes, using context managers, and basic file handling concepts","file-basics",90,"content:python:90.file-basics.md","python/90.file-basics.md","python/90.file-basics",{"_path":827,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":828,"description":829,"slug":830,"parentId":808,"order":831,"_type":15,"_id":832,"_source":17,"_file":833,"_stem":834,"_extension":20},"/python/reading-files","Reading Files","Master Python file reading techniques including reading entire files, line-by-line processing, and handling different file formats for efficient data processing","reading-files",91,"content:python:91.reading-files.md","python/91.reading-files.md","python/91.reading-files",{"_path":836,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":837,"description":838,"slug":839,"parentId":808,"order":840,"_type":15,"_id":841,"_source":17,"_file":842,"_stem":843,"_extension":20},"/python/writing-files","Writing Files","Learn Python file writing techniques including creating new files, appending content, updating existing files, and saving different data formats safely","writing-files",92,"content:python:92.writing-files.md","python/92.writing-files.md","python/92.writing-files",{"_path":845,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":846,"description":847,"slug":848,"parentId":808,"order":849,"_type":15,"_id":850,"_source":17,"_file":851,"_stem":852,"_extension":20},"/python/file-management","File Management","Learn Python file management techniques including checking file properties, organizing files, directory operations, and implementing file system maintenance tasks","file-management",93,"content:python:93.file-management.md","python/93.file-management.md","python/93.file-management",{"_path":854,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":855,"description":856,"slug":857,"order":858,"isParent":13,"icon":14,"_type":15,"_id":859,"_source":17,"_file":860,"_stem":861,"_extension":20,"children":862},"/python/code-organization","Code Organization","Master Python code organization with modules, built-in libraries, and path management for creating maintainable and reusable applications","code-organization",94,"content:python:94.code-organization.md","python/94.code-organization.md","python/94.code-organization",[863,872,881],{"_path":864,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":865,"description":866,"slug":867,"parentId":854,"order":868,"_type":15,"_id":869,"_source":17,"_file":870,"_stem":871,"_extension":20},"/python/creating-modules","Creating Modules","Learn how to create custom Python modules, organize functions and classes, write reusable code components, and design effective module structures","creating-modules",95,"content:python:95.creating-modules.md","python/95.creating-modules.md","python/95.creating-modules",{"_path":873,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":874,"description":875,"slug":876,"parentId":854,"order":877,"_type":15,"_id":878,"_source":17,"_file":879,"_stem":880,"_extension":20},"/python/using-built-in-modules","Using Built-in Modules","Discover Python's extensive standard library and learn to effectively use built-in modules for common programming tasks, data processing, and system operations","using-built-in-modules",96,"content:python:96.using-built-in-modules.md","python/96.using-built-in-modules.md","python/96.using-built-in-modules",{"_path":882,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":883,"description":884,"slug":885,"parentId":854,"order":886,"_type":15,"_id":887,"_source":17,"_file":888,"_stem":889,"_extension":20},"/python/module-paths","Module Paths","Understand Python's module search system, manage import paths, work with packages, and organize larger projects with proper module path management","module-paths",97,"content:python:97.module-paths.md","python/97.module-paths.md","python/97.module-paths",{"_path":891,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":892,"description":893,"slug":894,"order":895,"isParent":13,"icon":14,"_type":15,"_id":896,"_source":17,"_file":897,"_stem":898,"_extension":20,"children":899,"expanded":13},"/python/reference-materials","Reference Materials","Comprehensive Python reference materials including reserved words, built-in functions, and operation guides for quick lookup and development support","reference-materials",98,"content:python:98.reference-materials.md","python/98.reference-materials.md","python/98.reference-materials",[900,909,918,927,936,945,953,961,970],{"_path":901,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":902,"description":903,"slug":904,"parentId":891,"order":905,"_type":15,"_id":906,"_source":17,"_file":907,"_stem":908,"_extension":20},"/python/reserved-words","Reserved Words","Complete reference of Python keywords and reserved words with descriptions, usage examples, and syntax guidelines","reserved-words",99,"content:python:99.reserved-words.md","python/99.reserved-words.md","python/99.reserved-words",{"_path":910,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":911,"description":912,"slug":913,"parentId":891,"order":914,"_type":15,"_id":915,"_source":17,"_file":916,"_stem":917,"_extension":20},"/python/built-in-functions","Built-in Functions","Comprehensive reference of Python's built-in functions with parameters, return values, and practical usage examples","built-in-functions",100,"content:python:100.built-in-functions.md","python/100.built-in-functions.md","python/100.built-in-functions",{"_path":919,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":920,"description":921,"slug":922,"parentId":891,"order":923,"_type":15,"_id":924,"_source":17,"_file":925,"_stem":926,"_extension":20},"/python/string-operations","String Operations","Complete reference of Python string methods, operations, and formatting techniques with examples and use cases","string-operations",101,"content:python:101.string-operations.md","python/101.string-operations.md","python/101.string-operations",{"_path":928,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":929,"description":930,"slug":931,"parentId":891,"order":932,"_type":15,"_id":933,"_source":17,"_file":934,"_stem":935,"_extension":20},"/python/list-operations","List Operations","Complete reference of Python list methods, operations, and manipulation techniques with examples and performance notes","list-operations",102,"content:python:102.list-operations.md","python/102.list-operations.md","python/102.list-operations",{"_path":937,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":938,"description":939,"slug":940,"parentId":891,"order":941,"_type":15,"_id":942,"_source":17,"_file":943,"_stem":944,"_extension":20},"/python/dictionary-operations","Dictionary Operations","Complete reference of Python dictionary methods, operations, and manipulation techniques with examples and use cases","dictionary-operations",103,"content:python:103.dictionary-operations.md","python/103.dictionary-operations.md","python/103.dictionary-operations",{"_path":946,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":435,"description":947,"slug":948,"parentId":891,"order":949,"_type":15,"_id":950,"_source":17,"_file":951,"_stem":952,"_extension":20},"/python/tuple-methods","Complete reference of Python tuple operations, methods, and techniques with examples and use cases","tuple-methods",104,"content:python:104.tuple-methods.md","python/104.tuple-methods.md","python/104.tuple-methods",{"_path":954,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":508,"description":955,"slug":956,"parentId":891,"order":957,"_type":15,"_id":958,"_source":17,"_file":959,"_stem":960,"_extension":20},"/python/set-methods","Complete reference of Python set operations, methods, and mathematical set operations with examples and use cases","set-methods",105,"content:python:105.set-methods.md","python/105.set-methods.md","python/105.set-methods",{"_path":962,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":963,"description":964,"slug":965,"parentId":891,"order":966,"_type":15,"_id":967,"_source":17,"_file":968,"_stem":969,"_extension":20},"/python/file-operations-reference","File Operations Reference","Complete reference of Python file operations, modes, methods, and file handling techniques with examples","file-operations-reference",106,"content:python:106.file-operations-reference.md","python/106.file-operations-reference.md","python/106.file-operations-reference",{"_path":971,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":972,"description":973,"slug":974,"parentId":891,"order":975,"_type":15,"_id":976,"_source":17,"_file":977,"_stem":978,"_extension":20},"/python/error-types","Error Types","Complete reference of Python exception types, error handling patterns, and debugging techniques with examples","error-types",107,"content:python:107.error-types.md","python/107.error-types.md","python/107.error-types",{"_path":980,"_dir":8,"_draft":7,"_partial":7,"_locale":8,"title":981,"description":10,"slug":982,"order":983,"icon":14,"_type":15,"_id":984,"_source":17,"_file":985,"_stem":986,"_extension":20},"/python","Introduction","python-tutorial",0,"content:python:index.md","python/index.md","python/index",[716],{"_path":717,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":718,"description":719,"slug":720,"parentId":671,"order":721,"body":989,"_type":15,"_id":722,"_source":17,"_file":723,"_stem":724,"_extension":20},{"type":990,"children":991,"toc":10127},"root",[992,1000,1006,1011,1531,1538,1543,1738,1745,1750,2381,2387,2392,3249,3255,3260,4191,4197,4202,4208,4213,4739,4745,4750,5299,5305,5311,5316,6208,6214,6219,7440,7446,7452,7457,7587,7593,7598,8552,8557,9074,9080,10068,10081,10087,10092,10099,10105,10110,10121],{"type":993,"tag":994,"props":995,"children":996},"element","h1",{"id":720},[997],{"type":998,"value":999},"text","🔐 Variable Visibility",{"type":993,"tag":1001,"props":1002,"children":1003},"p",{},[1004],{"type":998,"value":1005},"Variable visibility controls how attributes and methods can be accessed from outside a class. Python uses naming conventions to indicate different visibility levels, helping you create well-encapsulated objects that protect their internal data while providing appropriate external interfaces.",{"type":993,"tag":1001,"props":1007,"children":1008},{},[1009],{"type":998,"value":1010},"Think of variable visibility like rooms in your house - some areas are public (living room for guests), some are protected (family room for family members), and others are private (your personal bedroom). Similarly, class attributes can have different access levels based on their intended use.",{"type":993,"tag":1012,"props":1013,"children":1014},"code-try",{},[1015],{"type":993,"tag":1016,"props":1017,"children":1020},"pre",{"className":1018,"code":1019,"language":6,"meta":8,"style":8},"language-python shiki shiki-themes github-light github-dark","# Variable visibility in action\nclass BankAccount:\n    def __init__(self, owner, initial_balance):\n        self.owner = owner              # Public attribute\n        self._account_type = \"checking\" # Protected attribute\n        self.__balance = initial_balance # Private attribute\n    \n    def deposit(self, amount):\n        if amount > 0:\n            self.__balance += amount\n            return f\"Deposited ${amount}. Balance: ${self.get_balance()}\"\n        return \"Invalid deposit amount\"\n    \n    def get_balance(self):\n        return self.__balance  # Controlled access to private data\n    \n    def _validate_transaction(self, amount):  # Protected method\n        return amount > 0 and amount \u003C= self.__balance\n\n# Different visibility levels\naccount = BankAccount(\"Alice\", 1000)\nprint(account.owner)           # Public - accessible\nprint(account._account_type)   # Protected - accessible but not recommended\n# print(account.__balance)     # Private - not directly accessible\nprint(account.get_balance())   # Access private data through public method\n",[1021],{"type":993,"tag":1022,"props":1023,"children":1024},"code",{"__ignoreMap":8},[1025,1036,1057,1076,1104,1131,1157,1165,1182,1209,1231,1288,1301,1308,1325,1347,1354,1376,1418,1426,1434,1471,1489,1506,1514],{"type":993,"tag":1026,"props":1027,"children":1029},"span",{"class":1028,"line":12},"line",[1030],{"type":993,"tag":1026,"props":1031,"children":1033},{"style":1032},"--shiki-default:#6A737D;--shiki-app-dark-mode:#6A737D",[1034],{"type":998,"value":1035},"# Variable visibility in action\n",{"type":993,"tag":1026,"props":1037,"children":1038},{"class":1028,"line":27},[1039,1045,1051],{"type":993,"tag":1026,"props":1040,"children":1042},{"style":1041},"--shiki-default:#D73A49;--shiki-app-dark-mode:#F97583",[1043],{"type":998,"value":1044},"class",{"type":993,"tag":1026,"props":1046,"children":1048},{"style":1047},"--shiki-default:#6F42C1;--shiki-app-dark-mode:#B392F0",[1049],{"type":998,"value":1050}," BankAccount",{"type":993,"tag":1026,"props":1052,"children":1054},{"style":1053},"--shiki-default:#24292E;--shiki-app-dark-mode:#E1E4E8",[1055],{"type":998,"value":1056},":\n",{"type":993,"tag":1026,"props":1058,"children":1059},{"class":1028,"line":36},[1060,1065,1071],{"type":993,"tag":1026,"props":1061,"children":1062},{"style":1041},[1063],{"type":998,"value":1064},"    def",{"type":993,"tag":1026,"props":1066,"children":1068},{"style":1067},"--shiki-default:#005CC5;--shiki-app-dark-mode:#79B8FF",[1069],{"type":998,"value":1070}," __init__",{"type":993,"tag":1026,"props":1072,"children":1073},{"style":1053},[1074],{"type":998,"value":1075},"(self, owner, initial_balance):\n",{"type":993,"tag":1026,"props":1077,"children":1078},{"class":1028,"line":45},[1079,1084,1089,1094,1099],{"type":993,"tag":1026,"props":1080,"children":1081},{"style":1067},[1082],{"type":998,"value":1083},"        self",{"type":993,"tag":1026,"props":1085,"children":1086},{"style":1053},[1087],{"type":998,"value":1088},".owner ",{"type":993,"tag":1026,"props":1090,"children":1091},{"style":1041},[1092],{"type":998,"value":1093},"=",{"type":993,"tag":1026,"props":1095,"children":1096},{"style":1053},[1097],{"type":998,"value":1098}," owner              ",{"type":993,"tag":1026,"props":1100,"children":1101},{"style":1032},[1102],{"type":998,"value":1103},"# Public attribute\n",{"type":993,"tag":1026,"props":1105,"children":1106},{"class":1028,"line":54},[1107,1111,1116,1120,1126],{"type":993,"tag":1026,"props":1108,"children":1109},{"style":1067},[1110],{"type":998,"value":1083},{"type":993,"tag":1026,"props":1112,"children":1113},{"style":1053},[1114],{"type":998,"value":1115},"._account_type ",{"type":993,"tag":1026,"props":1117,"children":1118},{"style":1041},[1119],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1121,"children":1123},{"style":1122},"--shiki-default:#032F62;--shiki-app-dark-mode:#9ECBFF",[1124],{"type":998,"value":1125}," \"checking\"",{"type":993,"tag":1026,"props":1127,"children":1128},{"style":1032},[1129],{"type":998,"value":1130}," # Protected attribute\n",{"type":993,"tag":1026,"props":1132,"children":1133},{"class":1028,"line":63},[1134,1138,1143,1147,1152],{"type":993,"tag":1026,"props":1135,"children":1136},{"style":1067},[1137],{"type":998,"value":1083},{"type":993,"tag":1026,"props":1139,"children":1140},{"style":1053},[1141],{"type":998,"value":1142},".__balance ",{"type":993,"tag":1026,"props":1144,"children":1145},{"style":1041},[1146],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1148,"children":1149},{"style":1053},[1150],{"type":998,"value":1151}," initial_balance ",{"type":993,"tag":1026,"props":1153,"children":1154},{"style":1032},[1155],{"type":998,"value":1156},"# Private attribute\n",{"type":993,"tag":1026,"props":1158,"children":1159},{"class":1028,"line":72},[1160],{"type":993,"tag":1026,"props":1161,"children":1162},{"style":1053},[1163],{"type":998,"value":1164},"    \n",{"type":993,"tag":1026,"props":1166,"children":1167},{"class":1028,"line":81},[1168,1172,1177],{"type":993,"tag":1026,"props":1169,"children":1170},{"style":1041},[1171],{"type":998,"value":1064},{"type":993,"tag":1026,"props":1173,"children":1174},{"style":1047},[1175],{"type":998,"value":1176}," deposit",{"type":993,"tag":1026,"props":1178,"children":1179},{"style":1053},[1180],{"type":998,"value":1181},"(self, amount):\n",{"type":993,"tag":1026,"props":1183,"children":1184},{"class":1028,"line":91},[1185,1190,1195,1200,1205],{"type":993,"tag":1026,"props":1186,"children":1187},{"style":1041},[1188],{"type":998,"value":1189},"        if",{"type":993,"tag":1026,"props":1191,"children":1192},{"style":1053},[1193],{"type":998,"value":1194}," amount ",{"type":993,"tag":1026,"props":1196,"children":1197},{"style":1041},[1198],{"type":998,"value":1199},">",{"type":993,"tag":1026,"props":1201,"children":1202},{"style":1067},[1203],{"type":998,"value":1204}," 0",{"type":993,"tag":1026,"props":1206,"children":1207},{"style":1053},[1208],{"type":998,"value":1056},{"type":993,"tag":1026,"props":1210,"children":1211},{"class":1028,"line":100},[1212,1217,1221,1226],{"type":993,"tag":1026,"props":1213,"children":1214},{"style":1067},[1215],{"type":998,"value":1216},"            self",{"type":993,"tag":1026,"props":1218,"children":1219},{"style":1053},[1220],{"type":998,"value":1142},{"type":993,"tag":1026,"props":1222,"children":1223},{"style":1041},[1224],{"type":998,"value":1225},"+=",{"type":993,"tag":1026,"props":1227,"children":1228},{"style":1053},[1229],{"type":998,"value":1230}," amount\n",{"type":993,"tag":1026,"props":1232,"children":1233},{"class":1028,"line":109},[1234,1239,1244,1249,1254,1259,1264,1269,1274,1279,1283],{"type":993,"tag":1026,"props":1235,"children":1236},{"style":1041},[1237],{"type":998,"value":1238},"            return",{"type":993,"tag":1026,"props":1240,"children":1241},{"style":1041},[1242],{"type":998,"value":1243}," f",{"type":993,"tag":1026,"props":1245,"children":1246},{"style":1122},[1247],{"type":998,"value":1248},"\"Deposited $",{"type":993,"tag":1026,"props":1250,"children":1251},{"style":1067},[1252],{"type":998,"value":1253},"{",{"type":993,"tag":1026,"props":1255,"children":1256},{"style":1053},[1257],{"type":998,"value":1258},"amount",{"type":993,"tag":1026,"props":1260,"children":1261},{"style":1067},[1262],{"type":998,"value":1263},"}",{"type":993,"tag":1026,"props":1265,"children":1266},{"style":1122},[1267],{"type":998,"value":1268},". Balance: $",{"type":993,"tag":1026,"props":1270,"children":1271},{"style":1067},[1272],{"type":998,"value":1273},"{self",{"type":993,"tag":1026,"props":1275,"children":1276},{"style":1053},[1277],{"type":998,"value":1278},".get_balance()",{"type":993,"tag":1026,"props":1280,"children":1281},{"style":1067},[1282],{"type":998,"value":1263},{"type":993,"tag":1026,"props":1284,"children":1285},{"style":1122},[1286],{"type":998,"value":1287},"\"\n",{"type":993,"tag":1026,"props":1289,"children":1290},{"class":1028,"line":118},[1291,1296],{"type":993,"tag":1026,"props":1292,"children":1293},{"style":1041},[1294],{"type":998,"value":1295},"        return",{"type":993,"tag":1026,"props":1297,"children":1298},{"style":1122},[1299],{"type":998,"value":1300}," \"Invalid deposit amount\"\n",{"type":993,"tag":1026,"props":1302,"children":1303},{"class":1028,"line":127},[1304],{"type":993,"tag":1026,"props":1305,"children":1306},{"style":1053},[1307],{"type":998,"value":1164},{"type":993,"tag":1026,"props":1309,"children":1310},{"class":1028,"line":136},[1311,1315,1320],{"type":993,"tag":1026,"props":1312,"children":1313},{"style":1041},[1314],{"type":998,"value":1064},{"type":993,"tag":1026,"props":1316,"children":1317},{"style":1047},[1318],{"type":998,"value":1319}," get_balance",{"type":993,"tag":1026,"props":1321,"children":1322},{"style":1053},[1323],{"type":998,"value":1324},"(self):\n",{"type":993,"tag":1026,"props":1326,"children":1327},{"class":1028,"line":146},[1328,1332,1337,1342],{"type":993,"tag":1026,"props":1329,"children":1330},{"style":1041},[1331],{"type":998,"value":1295},{"type":993,"tag":1026,"props":1333,"children":1334},{"style":1067},[1335],{"type":998,"value":1336}," self",{"type":993,"tag":1026,"props":1338,"children":1339},{"style":1053},[1340],{"type":998,"value":1341},".__balance  ",{"type":993,"tag":1026,"props":1343,"children":1344},{"style":1032},[1345],{"type":998,"value":1346},"# Controlled access to private data\n",{"type":993,"tag":1026,"props":1348,"children":1349},{"class":1028,"line":155},[1350],{"type":993,"tag":1026,"props":1351,"children":1352},{"style":1053},[1353],{"type":998,"value":1164},{"type":993,"tag":1026,"props":1355,"children":1356},{"class":1028,"line":164},[1357,1361,1366,1371],{"type":993,"tag":1026,"props":1358,"children":1359},{"style":1041},[1360],{"type":998,"value":1064},{"type":993,"tag":1026,"props":1362,"children":1363},{"style":1047},[1364],{"type":998,"value":1365}," _validate_transaction",{"type":993,"tag":1026,"props":1367,"children":1368},{"style":1053},[1369],{"type":998,"value":1370},"(self, amount):  ",{"type":993,"tag":1026,"props":1372,"children":1373},{"style":1032},[1374],{"type":998,"value":1375},"# Protected method\n",{"type":993,"tag":1026,"props":1377,"children":1378},{"class":1028,"line":173},[1379,1383,1387,1391,1395,1400,1404,1409,1413],{"type":993,"tag":1026,"props":1380,"children":1381},{"style":1041},[1382],{"type":998,"value":1295},{"type":993,"tag":1026,"props":1384,"children":1385},{"style":1053},[1386],{"type":998,"value":1194},{"type":993,"tag":1026,"props":1388,"children":1389},{"style":1041},[1390],{"type":998,"value":1199},{"type":993,"tag":1026,"props":1392,"children":1393},{"style":1067},[1394],{"type":998,"value":1204},{"type":993,"tag":1026,"props":1396,"children":1397},{"style":1041},[1398],{"type":998,"value":1399}," and",{"type":993,"tag":1026,"props":1401,"children":1402},{"style":1053},[1403],{"type":998,"value":1194},{"type":993,"tag":1026,"props":1405,"children":1406},{"style":1041},[1407],{"type":998,"value":1408},"\u003C=",{"type":993,"tag":1026,"props":1410,"children":1411},{"style":1067},[1412],{"type":998,"value":1336},{"type":993,"tag":1026,"props":1414,"children":1415},{"style":1053},[1416],{"type":998,"value":1417},".__balance\n",{"type":993,"tag":1026,"props":1419,"children":1420},{"class":1028,"line":182},[1421],{"type":993,"tag":1026,"props":1422,"children":1423},{"emptyLinePlaceholder":13},[1424],{"type":998,"value":1425},"\n",{"type":993,"tag":1026,"props":1427,"children":1428},{"class":1028,"line":191},[1429],{"type":993,"tag":1026,"props":1430,"children":1431},{"style":1032},[1432],{"type":998,"value":1433},"# Different visibility levels\n",{"type":993,"tag":1026,"props":1435,"children":1436},{"class":1028,"line":201},[1437,1442,1446,1451,1456,1461,1466],{"type":993,"tag":1026,"props":1438,"children":1439},{"style":1053},[1440],{"type":998,"value":1441},"account ",{"type":993,"tag":1026,"props":1443,"children":1444},{"style":1041},[1445],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1447,"children":1448},{"style":1053},[1449],{"type":998,"value":1450}," BankAccount(",{"type":993,"tag":1026,"props":1452,"children":1453},{"style":1122},[1454],{"type":998,"value":1455},"\"Alice\"",{"type":993,"tag":1026,"props":1457,"children":1458},{"style":1053},[1459],{"type":998,"value":1460},", ",{"type":993,"tag":1026,"props":1462,"children":1463},{"style":1067},[1464],{"type":998,"value":1465},"1000",{"type":993,"tag":1026,"props":1467,"children":1468},{"style":1053},[1469],{"type":998,"value":1470},")\n",{"type":993,"tag":1026,"props":1472,"children":1473},{"class":1028,"line":210},[1474,1479,1484],{"type":993,"tag":1026,"props":1475,"children":1476},{"style":1067},[1477],{"type":998,"value":1478},"print",{"type":993,"tag":1026,"props":1480,"children":1481},{"style":1053},[1482],{"type":998,"value":1483},"(account.owner)           ",{"type":993,"tag":1026,"props":1485,"children":1486},{"style":1032},[1487],{"type":998,"value":1488},"# Public - accessible\n",{"type":993,"tag":1026,"props":1490,"children":1491},{"class":1028,"line":219},[1492,1496,1501],{"type":993,"tag":1026,"props":1493,"children":1494},{"style":1067},[1495],{"type":998,"value":1478},{"type":993,"tag":1026,"props":1497,"children":1498},{"style":1053},[1499],{"type":998,"value":1500},"(account._account_type)   ",{"type":993,"tag":1026,"props":1502,"children":1503},{"style":1032},[1504],{"type":998,"value":1505},"# Protected - accessible but not recommended\n",{"type":993,"tag":1026,"props":1507,"children":1508},{"class":1028,"line":228},[1509],{"type":993,"tag":1026,"props":1510,"children":1511},{"style":1032},[1512],{"type":998,"value":1513},"# print(account.__balance)     # Private - not directly accessible\n",{"type":993,"tag":1026,"props":1515,"children":1516},{"class":1028,"line":238},[1517,1521,1526],{"type":993,"tag":1026,"props":1518,"children":1519},{"style":1067},[1520],{"type":998,"value":1478},{"type":993,"tag":1026,"props":1522,"children":1523},{"style":1053},[1524],{"type":998,"value":1525},"(account.get_balance())   ",{"type":993,"tag":1026,"props":1527,"children":1528},{"style":1032},[1529],{"type":998,"value":1530},"# Access private data through public method\n",{"type":993,"tag":1532,"props":1533,"children":1535},"h2",{"id":1534},"understanding-visibility-levels",[1536],{"type":998,"value":1537},"🎯 Understanding Visibility Levels",{"type":993,"tag":1001,"props":1539,"children":1540},{},[1541],{"type":998,"value":1542},"Python uses naming conventions to indicate different levels of variable and method visibility, creating implicit access control that guides how class members should be used.",{"type":993,"tag":1544,"props":1545,"children":1549},"info-box",{"emoji":1546,"title":1547,"type":1548},"📋","Visibility Conventions","info",[1550,1559,1604,1612,1648,1656,1692,1700],{"type":993,"tag":1001,"props":1551,"children":1552},{},[1553],{"type":993,"tag":1554,"props":1555,"children":1556},"strong",{},[1557],{"type":998,"value":1558},"Public (no prefix):",{"type":993,"tag":1560,"props":1561,"children":1562},"ul",{},[1563,1589,1594,1599],{"type":993,"tag":1564,"props":1565,"children":1566},"li",{},[1567,1569,1575,1576,1582,1583],{"type":998,"value":1568},"Normal attribute names: ",{"type":993,"tag":1022,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":998,"value":1574},"name",{"type":998,"value":1460},{"type":993,"tag":1022,"props":1577,"children":1579},{"className":1578},[],[1580],{"type":998,"value":1581},"age",{"type":998,"value":1460},{"type":993,"tag":1022,"props":1584,"children":1586},{"className":1585},[],[1587],{"type":998,"value":1588},"color",{"type":993,"tag":1564,"props":1590,"children":1591},{},[1592],{"type":998,"value":1593},"Freely accessible from anywhere",{"type":993,"tag":1564,"props":1595,"children":1596},{},[1597],{"type":998,"value":1598},"Part of the class's public interface",{"type":993,"tag":1564,"props":1600,"children":1601},{},[1602],{"type":998,"value":1603},"Should remain stable across versions",{"type":993,"tag":1001,"props":1605,"children":1606},{},[1607],{"type":993,"tag":1554,"props":1608,"children":1609},{},[1610],{"type":998,"value":1611},"Protected (single underscore _):",{"type":993,"tag":1560,"props":1613,"children":1614},{},[1615,1633,1638,1643],{"type":993,"tag":1564,"props":1616,"children":1617},{},[1618,1620,1626,1627],{"type":998,"value":1619},"Names starting with underscore: ",{"type":993,"tag":1022,"props":1621,"children":1623},{"className":1622},[],[1624],{"type":998,"value":1625},"_internal_method",{"type":998,"value":1460},{"type":993,"tag":1022,"props":1628,"children":1630},{"className":1629},[],[1631],{"type":998,"value":1632},"_config",{"type":993,"tag":1564,"props":1634,"children":1635},{},[1636],{"type":998,"value":1637},"Intended for internal use and subclasses",{"type":993,"tag":1564,"props":1639,"children":1640},{},[1641],{"type":998,"value":1642},"Accessible but discouraged for external use",{"type":993,"tag":1564,"props":1644,"children":1645},{},[1646],{"type":998,"value":1647},"May change in future versions",{"type":993,"tag":1001,"props":1649,"children":1650},{},[1651],{"type":993,"tag":1554,"props":1652,"children":1653},{},[1654],{"type":998,"value":1655},"Private (double underscore __):",{"type":993,"tag":1560,"props":1657,"children":1658},{},[1659,1677,1682,1687],{"type":993,"tag":1564,"props":1660,"children":1661},{},[1662,1664,1670,1671],{"type":998,"value":1663},"Names starting with double underscore: ",{"type":993,"tag":1022,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":998,"value":1669},"__secret",{"type":998,"value":1460},{"type":993,"tag":1022,"props":1672,"children":1674},{"className":1673},[],[1675],{"type":998,"value":1676},"__balance",{"type":993,"tag":1564,"props":1678,"children":1679},{},[1680],{"type":998,"value":1681},"Name mangling makes external access difficult",{"type":993,"tag":1564,"props":1683,"children":1684},{},[1685],{"type":998,"value":1686},"Truly internal implementation details",{"type":993,"tag":1564,"props":1688,"children":1689},{},[1690],{"type":998,"value":1691},"Should never be accessed directly from outside",{"type":993,"tag":1001,"props":1693,"children":1694},{},[1695],{"type":993,"tag":1554,"props":1696,"children":1697},{},[1698],{"type":998,"value":1699},"Special Methods (double underscores both sides):",{"type":993,"tag":1560,"props":1701,"children":1702},{},[1703,1728,1733],{"type":993,"tag":1564,"props":1704,"children":1705},{},[1706,1708,1714,1715,1721,1722],{"type":998,"value":1707},"Python's built-in methods: ",{"type":993,"tag":1022,"props":1709,"children":1711},{"className":1710},[],[1712],{"type":998,"value":1713},"__init__",{"type":998,"value":1460},{"type":993,"tag":1022,"props":1716,"children":1718},{"className":1717},[],[1719],{"type":998,"value":1720},"__str__",{"type":998,"value":1460},{"type":993,"tag":1022,"props":1723,"children":1725},{"className":1724},[],[1726],{"type":998,"value":1727},"__len__",{"type":993,"tag":1564,"props":1729,"children":1730},{},[1731],{"type":998,"value":1732},"Reserved for Python's special behavior",{"type":993,"tag":1564,"props":1734,"children":1735},{},[1736],{"type":998,"value":1737},"Don't create your own unless implementing protocols",{"type":993,"tag":1739,"props":1740,"children":1742},"h3",{"id":1741},"public-attributes",[1743],{"type":998,"value":1744},"Public Attributes",{"type":993,"tag":1001,"props":1746,"children":1747},{},[1748],{"type":998,"value":1749},"Public attributes form the main interface of your class, providing data and functionality that external code is expected to use directly.",{"type":993,"tag":1012,"props":1751,"children":1752},{},[1753],{"type":993,"tag":1016,"props":1754,"children":1756},{"className":1018,"code":1755,"language":6,"meta":8,"style":8},"class Book:\n    def __init__(self, title, author, isbn):\n        # Public attributes - part of the class interface\n        self.title = title\n        self.author = author\n        self.isbn = isbn\n        self.is_available = True\n        self.checkout_count = 0\n    \n    def checkout(self):\n        if self.is_available:\n            self.is_available = False\n            self.checkout_count += 1\n            return f\"Checked out: {self.title}\"\n        return \"Book already checked out\"\n    \n    def return_book(self):\n        self.is_available = True\n        return f\"Returned: {self.title}\"\n\n# Public attributes can be accessed and modified directly\nbook = Book(\"Python Guide\", \"John Doe\", \"123-456-789\")\nprint(f\"Title: {book.title}\")           # Direct access\nprint(f\"Available: {book.is_available}\") # Direct access\n\nbook.checkout()\nprint(f\"Checkout count: {book.checkout_count}\")  # Direct access\nbook.title = \"Advanced Python Guide\"    # Direct modification allowed\nprint(f\"New title: {book.title}\")\n",[1757],{"type":993,"tag":1022,"props":1758,"children":1759},{"__ignoreMap":8},[1760,1776,1792,1800,1821,1842,1863,1884,1905,1912,1928,1944,1964,1984,2017,2029,2036,2052,2071,2103,2110,2118,2162,2212,2258,2265,2273,2319,2341],{"type":993,"tag":1026,"props":1761,"children":1762},{"class":1028,"line":12},[1763,1767,1772],{"type":993,"tag":1026,"props":1764,"children":1765},{"style":1041},[1766],{"type":998,"value":1044},{"type":993,"tag":1026,"props":1768,"children":1769},{"style":1047},[1770],{"type":998,"value":1771}," Book",{"type":993,"tag":1026,"props":1773,"children":1774},{"style":1053},[1775],{"type":998,"value":1056},{"type":993,"tag":1026,"props":1777,"children":1778},{"class":1028,"line":27},[1779,1783,1787],{"type":993,"tag":1026,"props":1780,"children":1781},{"style":1041},[1782],{"type":998,"value":1064},{"type":993,"tag":1026,"props":1784,"children":1785},{"style":1067},[1786],{"type":998,"value":1070},{"type":993,"tag":1026,"props":1788,"children":1789},{"style":1053},[1790],{"type":998,"value":1791},"(self, title, author, isbn):\n",{"type":993,"tag":1026,"props":1793,"children":1794},{"class":1028,"line":36},[1795],{"type":993,"tag":1026,"props":1796,"children":1797},{"style":1032},[1798],{"type":998,"value":1799},"        # Public attributes - part of the class interface\n",{"type":993,"tag":1026,"props":1801,"children":1802},{"class":1028,"line":45},[1803,1807,1812,1816],{"type":993,"tag":1026,"props":1804,"children":1805},{"style":1067},[1806],{"type":998,"value":1083},{"type":993,"tag":1026,"props":1808,"children":1809},{"style":1053},[1810],{"type":998,"value":1811},".title ",{"type":993,"tag":1026,"props":1813,"children":1814},{"style":1041},[1815],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1817,"children":1818},{"style":1053},[1819],{"type":998,"value":1820}," title\n",{"type":993,"tag":1026,"props":1822,"children":1823},{"class":1028,"line":54},[1824,1828,1833,1837],{"type":993,"tag":1026,"props":1825,"children":1826},{"style":1067},[1827],{"type":998,"value":1083},{"type":993,"tag":1026,"props":1829,"children":1830},{"style":1053},[1831],{"type":998,"value":1832},".author ",{"type":993,"tag":1026,"props":1834,"children":1835},{"style":1041},[1836],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1838,"children":1839},{"style":1053},[1840],{"type":998,"value":1841}," author\n",{"type":993,"tag":1026,"props":1843,"children":1844},{"class":1028,"line":63},[1845,1849,1854,1858],{"type":993,"tag":1026,"props":1846,"children":1847},{"style":1067},[1848],{"type":998,"value":1083},{"type":993,"tag":1026,"props":1850,"children":1851},{"style":1053},[1852],{"type":998,"value":1853},".isbn ",{"type":993,"tag":1026,"props":1855,"children":1856},{"style":1041},[1857],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1859,"children":1860},{"style":1053},[1861],{"type":998,"value":1862}," isbn\n",{"type":993,"tag":1026,"props":1864,"children":1865},{"class":1028,"line":72},[1866,1870,1875,1879],{"type":993,"tag":1026,"props":1867,"children":1868},{"style":1067},[1869],{"type":998,"value":1083},{"type":993,"tag":1026,"props":1871,"children":1872},{"style":1053},[1873],{"type":998,"value":1874},".is_available ",{"type":993,"tag":1026,"props":1876,"children":1877},{"style":1041},[1878],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1880,"children":1881},{"style":1067},[1882],{"type":998,"value":1883}," True\n",{"type":993,"tag":1026,"props":1885,"children":1886},{"class":1028,"line":81},[1887,1891,1896,1900],{"type":993,"tag":1026,"props":1888,"children":1889},{"style":1067},[1890],{"type":998,"value":1083},{"type":993,"tag":1026,"props":1892,"children":1893},{"style":1053},[1894],{"type":998,"value":1895},".checkout_count ",{"type":993,"tag":1026,"props":1897,"children":1898},{"style":1041},[1899],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1901,"children":1902},{"style":1067},[1903],{"type":998,"value":1904}," 0\n",{"type":993,"tag":1026,"props":1906,"children":1907},{"class":1028,"line":91},[1908],{"type":993,"tag":1026,"props":1909,"children":1910},{"style":1053},[1911],{"type":998,"value":1164},{"type":993,"tag":1026,"props":1913,"children":1914},{"class":1028,"line":100},[1915,1919,1924],{"type":993,"tag":1026,"props":1916,"children":1917},{"style":1041},[1918],{"type":998,"value":1064},{"type":993,"tag":1026,"props":1920,"children":1921},{"style":1047},[1922],{"type":998,"value":1923}," checkout",{"type":993,"tag":1026,"props":1925,"children":1926},{"style":1053},[1927],{"type":998,"value":1324},{"type":993,"tag":1026,"props":1929,"children":1930},{"class":1028,"line":109},[1931,1935,1939],{"type":993,"tag":1026,"props":1932,"children":1933},{"style":1041},[1934],{"type":998,"value":1189},{"type":993,"tag":1026,"props":1936,"children":1937},{"style":1067},[1938],{"type":998,"value":1336},{"type":993,"tag":1026,"props":1940,"children":1941},{"style":1053},[1942],{"type":998,"value":1943},".is_available:\n",{"type":993,"tag":1026,"props":1945,"children":1946},{"class":1028,"line":118},[1947,1951,1955,1959],{"type":993,"tag":1026,"props":1948,"children":1949},{"style":1067},[1950],{"type":998,"value":1216},{"type":993,"tag":1026,"props":1952,"children":1953},{"style":1053},[1954],{"type":998,"value":1874},{"type":993,"tag":1026,"props":1956,"children":1957},{"style":1041},[1958],{"type":998,"value":1093},{"type":993,"tag":1026,"props":1960,"children":1961},{"style":1067},[1962],{"type":998,"value":1963}," False\n",{"type":993,"tag":1026,"props":1965,"children":1966},{"class":1028,"line":127},[1967,1971,1975,1979],{"type":993,"tag":1026,"props":1968,"children":1969},{"style":1067},[1970],{"type":998,"value":1216},{"type":993,"tag":1026,"props":1972,"children":1973},{"style":1053},[1974],{"type":998,"value":1895},{"type":993,"tag":1026,"props":1976,"children":1977},{"style":1041},[1978],{"type":998,"value":1225},{"type":993,"tag":1026,"props":1980,"children":1981},{"style":1067},[1982],{"type":998,"value":1983}," 1\n",{"type":993,"tag":1026,"props":1985,"children":1986},{"class":1028,"line":136},[1987,1991,1995,2000,2004,2009,2013],{"type":993,"tag":1026,"props":1988,"children":1989},{"style":1041},[1990],{"type":998,"value":1238},{"type":993,"tag":1026,"props":1992,"children":1993},{"style":1041},[1994],{"type":998,"value":1243},{"type":993,"tag":1026,"props":1996,"children":1997},{"style":1122},[1998],{"type":998,"value":1999},"\"Checked out: ",{"type":993,"tag":1026,"props":2001,"children":2002},{"style":1067},[2003],{"type":998,"value":1273},{"type":993,"tag":1026,"props":2005,"children":2006},{"style":1053},[2007],{"type":998,"value":2008},".title",{"type":993,"tag":1026,"props":2010,"children":2011},{"style":1067},[2012],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2014,"children":2015},{"style":1122},[2016],{"type":998,"value":1287},{"type":993,"tag":1026,"props":2018,"children":2019},{"class":1028,"line":146},[2020,2024],{"type":993,"tag":1026,"props":2021,"children":2022},{"style":1041},[2023],{"type":998,"value":1295},{"type":993,"tag":1026,"props":2025,"children":2026},{"style":1122},[2027],{"type":998,"value":2028}," \"Book already checked out\"\n",{"type":993,"tag":1026,"props":2030,"children":2031},{"class":1028,"line":155},[2032],{"type":993,"tag":1026,"props":2033,"children":2034},{"style":1053},[2035],{"type":998,"value":1164},{"type":993,"tag":1026,"props":2037,"children":2038},{"class":1028,"line":164},[2039,2043,2048],{"type":993,"tag":1026,"props":2040,"children":2041},{"style":1041},[2042],{"type":998,"value":1064},{"type":993,"tag":1026,"props":2044,"children":2045},{"style":1047},[2046],{"type":998,"value":2047}," return_book",{"type":993,"tag":1026,"props":2049,"children":2050},{"style":1053},[2051],{"type":998,"value":1324},{"type":993,"tag":1026,"props":2053,"children":2054},{"class":1028,"line":173},[2055,2059,2063,2067],{"type":993,"tag":1026,"props":2056,"children":2057},{"style":1067},[2058],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2060,"children":2061},{"style":1053},[2062],{"type":998,"value":1874},{"type":993,"tag":1026,"props":2064,"children":2065},{"style":1041},[2066],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2068,"children":2069},{"style":1067},[2070],{"type":998,"value":1883},{"type":993,"tag":1026,"props":2072,"children":2073},{"class":1028,"line":182},[2074,2078,2082,2087,2091,2095,2099],{"type":993,"tag":1026,"props":2075,"children":2076},{"style":1041},[2077],{"type":998,"value":1295},{"type":993,"tag":1026,"props":2079,"children":2080},{"style":1041},[2081],{"type":998,"value":1243},{"type":993,"tag":1026,"props":2083,"children":2084},{"style":1122},[2085],{"type":998,"value":2086},"\"Returned: ",{"type":993,"tag":1026,"props":2088,"children":2089},{"style":1067},[2090],{"type":998,"value":1273},{"type":993,"tag":1026,"props":2092,"children":2093},{"style":1053},[2094],{"type":998,"value":2008},{"type":993,"tag":1026,"props":2096,"children":2097},{"style":1067},[2098],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2100,"children":2101},{"style":1122},[2102],{"type":998,"value":1287},{"type":993,"tag":1026,"props":2104,"children":2105},{"class":1028,"line":191},[2106],{"type":993,"tag":1026,"props":2107,"children":2108},{"emptyLinePlaceholder":13},[2109],{"type":998,"value":1425},{"type":993,"tag":1026,"props":2111,"children":2112},{"class":1028,"line":201},[2113],{"type":993,"tag":1026,"props":2114,"children":2115},{"style":1032},[2116],{"type":998,"value":2117},"# Public attributes can be accessed and modified directly\n",{"type":993,"tag":1026,"props":2119,"children":2120},{"class":1028,"line":210},[2121,2126,2130,2135,2140,2144,2149,2153,2158],{"type":993,"tag":1026,"props":2122,"children":2123},{"style":1053},[2124],{"type":998,"value":2125},"book ",{"type":993,"tag":1026,"props":2127,"children":2128},{"style":1041},[2129],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2131,"children":2132},{"style":1053},[2133],{"type":998,"value":2134}," Book(",{"type":993,"tag":1026,"props":2136,"children":2137},{"style":1122},[2138],{"type":998,"value":2139},"\"Python Guide\"",{"type":993,"tag":1026,"props":2141,"children":2142},{"style":1053},[2143],{"type":998,"value":1460},{"type":993,"tag":1026,"props":2145,"children":2146},{"style":1122},[2147],{"type":998,"value":2148},"\"John Doe\"",{"type":993,"tag":1026,"props":2150,"children":2151},{"style":1053},[2152],{"type":998,"value":1460},{"type":993,"tag":1026,"props":2154,"children":2155},{"style":1122},[2156],{"type":998,"value":2157},"\"123-456-789\"",{"type":993,"tag":1026,"props":2159,"children":2160},{"style":1053},[2161],{"type":998,"value":1470},{"type":993,"tag":1026,"props":2163,"children":2164},{"class":1028,"line":219},[2165,2169,2174,2179,2184,2188,2193,2197,2202,2207],{"type":993,"tag":1026,"props":2166,"children":2167},{"style":1067},[2168],{"type":998,"value":1478},{"type":993,"tag":1026,"props":2170,"children":2171},{"style":1053},[2172],{"type":998,"value":2173},"(",{"type":993,"tag":1026,"props":2175,"children":2176},{"style":1041},[2177],{"type":998,"value":2178},"f",{"type":993,"tag":1026,"props":2180,"children":2181},{"style":1122},[2182],{"type":998,"value":2183},"\"Title: ",{"type":993,"tag":1026,"props":2185,"children":2186},{"style":1067},[2187],{"type":998,"value":1253},{"type":993,"tag":1026,"props":2189,"children":2190},{"style":1053},[2191],{"type":998,"value":2192},"book.title",{"type":993,"tag":1026,"props":2194,"children":2195},{"style":1067},[2196],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2198,"children":2199},{"style":1122},[2200],{"type":998,"value":2201},"\"",{"type":993,"tag":1026,"props":2203,"children":2204},{"style":1053},[2205],{"type":998,"value":2206},")           ",{"type":993,"tag":1026,"props":2208,"children":2209},{"style":1032},[2210],{"type":998,"value":2211},"# Direct access\n",{"type":993,"tag":1026,"props":2213,"children":2214},{"class":1028,"line":228},[2215,2219,2223,2227,2232,2236,2241,2245,2249,2254],{"type":993,"tag":1026,"props":2216,"children":2217},{"style":1067},[2218],{"type":998,"value":1478},{"type":993,"tag":1026,"props":2220,"children":2221},{"style":1053},[2222],{"type":998,"value":2173},{"type":993,"tag":1026,"props":2224,"children":2225},{"style":1041},[2226],{"type":998,"value":2178},{"type":993,"tag":1026,"props":2228,"children":2229},{"style":1122},[2230],{"type":998,"value":2231},"\"Available: ",{"type":993,"tag":1026,"props":2233,"children":2234},{"style":1067},[2235],{"type":998,"value":1253},{"type":993,"tag":1026,"props":2237,"children":2238},{"style":1053},[2239],{"type":998,"value":2240},"book.is_available",{"type":993,"tag":1026,"props":2242,"children":2243},{"style":1067},[2244],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2246,"children":2247},{"style":1122},[2248],{"type":998,"value":2201},{"type":993,"tag":1026,"props":2250,"children":2251},{"style":1053},[2252],{"type":998,"value":2253},") ",{"type":993,"tag":1026,"props":2255,"children":2256},{"style":1032},[2257],{"type":998,"value":2211},{"type":993,"tag":1026,"props":2259,"children":2260},{"class":1028,"line":238},[2261],{"type":993,"tag":1026,"props":2262,"children":2263},{"emptyLinePlaceholder":13},[2264],{"type":998,"value":1425},{"type":993,"tag":1026,"props":2266,"children":2267},{"class":1028,"line":247},[2268],{"type":993,"tag":1026,"props":2269,"children":2270},{"style":1053},[2271],{"type":998,"value":2272},"book.checkout()\n",{"type":993,"tag":1026,"props":2274,"children":2275},{"class":1028,"line":256},[2276,2280,2284,2288,2293,2297,2302,2306,2310,2315],{"type":993,"tag":1026,"props":2277,"children":2278},{"style":1067},[2279],{"type":998,"value":1478},{"type":993,"tag":1026,"props":2281,"children":2282},{"style":1053},[2283],{"type":998,"value":2173},{"type":993,"tag":1026,"props":2285,"children":2286},{"style":1041},[2287],{"type":998,"value":2178},{"type":993,"tag":1026,"props":2289,"children":2290},{"style":1122},[2291],{"type":998,"value":2292},"\"Checkout count: ",{"type":993,"tag":1026,"props":2294,"children":2295},{"style":1067},[2296],{"type":998,"value":1253},{"type":993,"tag":1026,"props":2298,"children":2299},{"style":1053},[2300],{"type":998,"value":2301},"book.checkout_count",{"type":993,"tag":1026,"props":2303,"children":2304},{"style":1067},[2305],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2307,"children":2308},{"style":1122},[2309],{"type":998,"value":2201},{"type":993,"tag":1026,"props":2311,"children":2312},{"style":1053},[2313],{"type":998,"value":2314},")  ",{"type":993,"tag":1026,"props":2316,"children":2317},{"style":1032},[2318],{"type":998,"value":2211},{"type":993,"tag":1026,"props":2320,"children":2321},{"class":1028,"line":265},[2322,2327,2331,2336],{"type":993,"tag":1026,"props":2323,"children":2324},{"style":1053},[2325],{"type":998,"value":2326},"book.title ",{"type":993,"tag":1026,"props":2328,"children":2329},{"style":1041},[2330],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2332,"children":2333},{"style":1122},[2334],{"type":998,"value":2335}," \"Advanced Python Guide\"",{"type":993,"tag":1026,"props":2337,"children":2338},{"style":1032},[2339],{"type":998,"value":2340},"    # Direct modification allowed\n",{"type":993,"tag":1026,"props":2342,"children":2343},{"class":1028,"line":274},[2344,2348,2352,2356,2361,2365,2369,2373,2377],{"type":993,"tag":1026,"props":2345,"children":2346},{"style":1067},[2347],{"type":998,"value":1478},{"type":993,"tag":1026,"props":2349,"children":2350},{"style":1053},[2351],{"type":998,"value":2173},{"type":993,"tag":1026,"props":2353,"children":2354},{"style":1041},[2355],{"type":998,"value":2178},{"type":993,"tag":1026,"props":2357,"children":2358},{"style":1122},[2359],{"type":998,"value":2360},"\"New title: ",{"type":993,"tag":1026,"props":2362,"children":2363},{"style":1067},[2364],{"type":998,"value":1253},{"type":993,"tag":1026,"props":2366,"children":2367},{"style":1053},[2368],{"type":998,"value":2192},{"type":993,"tag":1026,"props":2370,"children":2371},{"style":1067},[2372],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2374,"children":2375},{"style":1122},[2376],{"type":998,"value":2201},{"type":993,"tag":1026,"props":2378,"children":2379},{"style":1053},[2380],{"type":998,"value":1470},{"type":993,"tag":1739,"props":2382,"children":2384},{"id":2383},"protected-attributes",[2385],{"type":998,"value":2386},"Protected Attributes",{"type":993,"tag":1001,"props":2388,"children":2389},{},[2390],{"type":998,"value":2391},"Protected attributes are intended for internal use and subclasses. The single underscore prefix signals that these attributes are implementation details that may change.",{"type":993,"tag":1012,"props":2393,"children":2394},{},[2395],{"type":993,"tag":1016,"props":2396,"children":2398},{"className":1018,"code":2397,"language":6,"meta":8,"style":8},"class Vehicle:\n    def __init__(self, make, model):\n        self.make = make              # Public\n        self.model = model            # Public\n        self._engine_status = \"off\"   # Protected\n        self._maintenance_due = False # Protected\n    \n    def start(self):\n        if self._check_engine_ready():  # Using protected method\n            self._engine_status = \"on\"\n            return f\"{self.make} {self.model} started\"\n        return \"Engine not ready\"\n    \n    def _check_engine_ready(self):  # Protected method\n        return not self._maintenance_due\n    \n    def _schedule_maintenance(self):  # Protected method\n        self._maintenance_due = True\n\nclass Car(Vehicle):\n    def __init__(self, make, model, doors):\n        super().__init__(make, model)\n        self.doors = doors\n        self._fuel_level = 100        # Protected in subclass\n    \n    def drive(self):\n        if self._engine_status == \"on\" and self._fuel_level > 0:\n            self._fuel_level -= 10\n            return f\"Driving {self.make} {self.model}\"\n        return \"Cannot drive - check engine and fuel\"\n    \n    def get_status(self):\n        # Subclass can access parent's protected attributes\n        return f\"Engine: {self._engine_status}, Fuel: {self._fuel_level}%\"\n\n# Protected attributes accessible but not recommended for external use\ncar = Car(\"Toyota\", \"Camry\", 4)\nprint(car.start())\nprint(car.get_status())\n\n# You CAN access protected attributes, but you shouldn't\nprint(f\"Engine status: {car._engine_status}\")  # Works but discouraged\n",[2399],{"type":993,"tag":1022,"props":2400,"children":2401},{"__ignoreMap":8},[2402,2418,2434,2460,2485,2511,2537,2544,2560,2581,2601,2648,2660,2667,2688,2709,2716,2736,2755,2762,2788,2804,2826,2847,2873,2880,2896,2945,2966,3010,3022,3029,3045,3053,3105,3112,3120,3164,3176,3188,3195,3203],{"type":993,"tag":1026,"props":2403,"children":2404},{"class":1028,"line":12},[2405,2409,2414],{"type":993,"tag":1026,"props":2406,"children":2407},{"style":1041},[2408],{"type":998,"value":1044},{"type":993,"tag":1026,"props":2410,"children":2411},{"style":1047},[2412],{"type":998,"value":2413}," Vehicle",{"type":993,"tag":1026,"props":2415,"children":2416},{"style":1053},[2417],{"type":998,"value":1056},{"type":993,"tag":1026,"props":2419,"children":2420},{"class":1028,"line":27},[2421,2425,2429],{"type":993,"tag":1026,"props":2422,"children":2423},{"style":1041},[2424],{"type":998,"value":1064},{"type":993,"tag":1026,"props":2426,"children":2427},{"style":1067},[2428],{"type":998,"value":1070},{"type":993,"tag":1026,"props":2430,"children":2431},{"style":1053},[2432],{"type":998,"value":2433},"(self, make, model):\n",{"type":993,"tag":1026,"props":2435,"children":2436},{"class":1028,"line":36},[2437,2441,2446,2450,2455],{"type":993,"tag":1026,"props":2438,"children":2439},{"style":1067},[2440],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2442,"children":2443},{"style":1053},[2444],{"type":998,"value":2445},".make ",{"type":993,"tag":1026,"props":2447,"children":2448},{"style":1041},[2449],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2451,"children":2452},{"style":1053},[2453],{"type":998,"value":2454}," make              ",{"type":993,"tag":1026,"props":2456,"children":2457},{"style":1032},[2458],{"type":998,"value":2459},"# Public\n",{"type":993,"tag":1026,"props":2461,"children":2462},{"class":1028,"line":45},[2463,2467,2472,2476,2481],{"type":993,"tag":1026,"props":2464,"children":2465},{"style":1067},[2466],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2468,"children":2469},{"style":1053},[2470],{"type":998,"value":2471},".model ",{"type":993,"tag":1026,"props":2473,"children":2474},{"style":1041},[2475],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2477,"children":2478},{"style":1053},[2479],{"type":998,"value":2480}," model            ",{"type":993,"tag":1026,"props":2482,"children":2483},{"style":1032},[2484],{"type":998,"value":2459},{"type":993,"tag":1026,"props":2486,"children":2487},{"class":1028,"line":54},[2488,2492,2497,2501,2506],{"type":993,"tag":1026,"props":2489,"children":2490},{"style":1067},[2491],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2493,"children":2494},{"style":1053},[2495],{"type":998,"value":2496},"._engine_status ",{"type":993,"tag":1026,"props":2498,"children":2499},{"style":1041},[2500],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2502,"children":2503},{"style":1122},[2504],{"type":998,"value":2505}," \"off\"",{"type":993,"tag":1026,"props":2507,"children":2508},{"style":1032},[2509],{"type":998,"value":2510},"   # Protected\n",{"type":993,"tag":1026,"props":2512,"children":2513},{"class":1028,"line":63},[2514,2518,2523,2527,2532],{"type":993,"tag":1026,"props":2515,"children":2516},{"style":1067},[2517],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2519,"children":2520},{"style":1053},[2521],{"type":998,"value":2522},"._maintenance_due ",{"type":993,"tag":1026,"props":2524,"children":2525},{"style":1041},[2526],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2528,"children":2529},{"style":1067},[2530],{"type":998,"value":2531}," False",{"type":993,"tag":1026,"props":2533,"children":2534},{"style":1032},[2535],{"type":998,"value":2536}," # Protected\n",{"type":993,"tag":1026,"props":2538,"children":2539},{"class":1028,"line":72},[2540],{"type":993,"tag":1026,"props":2541,"children":2542},{"style":1053},[2543],{"type":998,"value":1164},{"type":993,"tag":1026,"props":2545,"children":2546},{"class":1028,"line":81},[2547,2551,2556],{"type":993,"tag":1026,"props":2548,"children":2549},{"style":1041},[2550],{"type":998,"value":1064},{"type":993,"tag":1026,"props":2552,"children":2553},{"style":1047},[2554],{"type":998,"value":2555}," start",{"type":993,"tag":1026,"props":2557,"children":2558},{"style":1053},[2559],{"type":998,"value":1324},{"type":993,"tag":1026,"props":2561,"children":2562},{"class":1028,"line":91},[2563,2567,2571,2576],{"type":993,"tag":1026,"props":2564,"children":2565},{"style":1041},[2566],{"type":998,"value":1189},{"type":993,"tag":1026,"props":2568,"children":2569},{"style":1067},[2570],{"type":998,"value":1336},{"type":993,"tag":1026,"props":2572,"children":2573},{"style":1053},[2574],{"type":998,"value":2575},"._check_engine_ready():  ",{"type":993,"tag":1026,"props":2577,"children":2578},{"style":1032},[2579],{"type":998,"value":2580},"# Using protected method\n",{"type":993,"tag":1026,"props":2582,"children":2583},{"class":1028,"line":100},[2584,2588,2592,2596],{"type":993,"tag":1026,"props":2585,"children":2586},{"style":1067},[2587],{"type":998,"value":1216},{"type":993,"tag":1026,"props":2589,"children":2590},{"style":1053},[2591],{"type":998,"value":2496},{"type":993,"tag":1026,"props":2593,"children":2594},{"style":1041},[2595],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2597,"children":2598},{"style":1122},[2599],{"type":998,"value":2600}," \"on\"\n",{"type":993,"tag":1026,"props":2602,"children":2603},{"class":1028,"line":109},[2604,2608,2612,2616,2620,2625,2629,2634,2639,2643],{"type":993,"tag":1026,"props":2605,"children":2606},{"style":1041},[2607],{"type":998,"value":1238},{"type":993,"tag":1026,"props":2609,"children":2610},{"style":1041},[2611],{"type":998,"value":1243},{"type":993,"tag":1026,"props":2613,"children":2614},{"style":1122},[2615],{"type":998,"value":2201},{"type":993,"tag":1026,"props":2617,"children":2618},{"style":1067},[2619],{"type":998,"value":1273},{"type":993,"tag":1026,"props":2621,"children":2622},{"style":1053},[2623],{"type":998,"value":2624},".make",{"type":993,"tag":1026,"props":2626,"children":2627},{"style":1067},[2628],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2630,"children":2631},{"style":1067},[2632],{"type":998,"value":2633}," {self",{"type":993,"tag":1026,"props":2635,"children":2636},{"style":1053},[2637],{"type":998,"value":2638},".model",{"type":993,"tag":1026,"props":2640,"children":2641},{"style":1067},[2642],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2644,"children":2645},{"style":1122},[2646],{"type":998,"value":2647}," started\"\n",{"type":993,"tag":1026,"props":2649,"children":2650},{"class":1028,"line":118},[2651,2655],{"type":993,"tag":1026,"props":2652,"children":2653},{"style":1041},[2654],{"type":998,"value":1295},{"type":993,"tag":1026,"props":2656,"children":2657},{"style":1122},[2658],{"type":998,"value":2659}," \"Engine not ready\"\n",{"type":993,"tag":1026,"props":2661,"children":2662},{"class":1028,"line":127},[2663],{"type":993,"tag":1026,"props":2664,"children":2665},{"style":1053},[2666],{"type":998,"value":1164},{"type":993,"tag":1026,"props":2668,"children":2669},{"class":1028,"line":136},[2670,2674,2679,2684],{"type":993,"tag":1026,"props":2671,"children":2672},{"style":1041},[2673],{"type":998,"value":1064},{"type":993,"tag":1026,"props":2675,"children":2676},{"style":1047},[2677],{"type":998,"value":2678}," _check_engine_ready",{"type":993,"tag":1026,"props":2680,"children":2681},{"style":1053},[2682],{"type":998,"value":2683},"(self):  ",{"type":993,"tag":1026,"props":2685,"children":2686},{"style":1032},[2687],{"type":998,"value":1375},{"type":993,"tag":1026,"props":2689,"children":2690},{"class":1028,"line":146},[2691,2695,2700,2704],{"type":993,"tag":1026,"props":2692,"children":2693},{"style":1041},[2694],{"type":998,"value":1295},{"type":993,"tag":1026,"props":2696,"children":2697},{"style":1041},[2698],{"type":998,"value":2699}," not",{"type":993,"tag":1026,"props":2701,"children":2702},{"style":1067},[2703],{"type":998,"value":1336},{"type":993,"tag":1026,"props":2705,"children":2706},{"style":1053},[2707],{"type":998,"value":2708},"._maintenance_due\n",{"type":993,"tag":1026,"props":2710,"children":2711},{"class":1028,"line":155},[2712],{"type":993,"tag":1026,"props":2713,"children":2714},{"style":1053},[2715],{"type":998,"value":1164},{"type":993,"tag":1026,"props":2717,"children":2718},{"class":1028,"line":164},[2719,2723,2728,2732],{"type":993,"tag":1026,"props":2720,"children":2721},{"style":1041},[2722],{"type":998,"value":1064},{"type":993,"tag":1026,"props":2724,"children":2725},{"style":1047},[2726],{"type":998,"value":2727}," _schedule_maintenance",{"type":993,"tag":1026,"props":2729,"children":2730},{"style":1053},[2731],{"type":998,"value":2683},{"type":993,"tag":1026,"props":2733,"children":2734},{"style":1032},[2735],{"type":998,"value":1375},{"type":993,"tag":1026,"props":2737,"children":2738},{"class":1028,"line":173},[2739,2743,2747,2751],{"type":993,"tag":1026,"props":2740,"children":2741},{"style":1067},[2742],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2744,"children":2745},{"style":1053},[2746],{"type":998,"value":2522},{"type":993,"tag":1026,"props":2748,"children":2749},{"style":1041},[2750],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2752,"children":2753},{"style":1067},[2754],{"type":998,"value":1883},{"type":993,"tag":1026,"props":2756,"children":2757},{"class":1028,"line":182},[2758],{"type":993,"tag":1026,"props":2759,"children":2760},{"emptyLinePlaceholder":13},[2761],{"type":998,"value":1425},{"type":993,"tag":1026,"props":2763,"children":2764},{"class":1028,"line":191},[2765,2769,2774,2778,2783],{"type":993,"tag":1026,"props":2766,"children":2767},{"style":1041},[2768],{"type":998,"value":1044},{"type":993,"tag":1026,"props":2770,"children":2771},{"style":1047},[2772],{"type":998,"value":2773}," Car",{"type":993,"tag":1026,"props":2775,"children":2776},{"style":1053},[2777],{"type":998,"value":2173},{"type":993,"tag":1026,"props":2779,"children":2780},{"style":1047},[2781],{"type":998,"value":2782},"Vehicle",{"type":993,"tag":1026,"props":2784,"children":2785},{"style":1053},[2786],{"type":998,"value":2787},"):\n",{"type":993,"tag":1026,"props":2789,"children":2790},{"class":1028,"line":201},[2791,2795,2799],{"type":993,"tag":1026,"props":2792,"children":2793},{"style":1041},[2794],{"type":998,"value":1064},{"type":993,"tag":1026,"props":2796,"children":2797},{"style":1067},[2798],{"type":998,"value":1070},{"type":993,"tag":1026,"props":2800,"children":2801},{"style":1053},[2802],{"type":998,"value":2803},"(self, make, model, doors):\n",{"type":993,"tag":1026,"props":2805,"children":2806},{"class":1028,"line":210},[2807,2812,2817,2821],{"type":993,"tag":1026,"props":2808,"children":2809},{"style":1067},[2810],{"type":998,"value":2811},"        super",{"type":993,"tag":1026,"props":2813,"children":2814},{"style":1053},[2815],{"type":998,"value":2816},"().",{"type":993,"tag":1026,"props":2818,"children":2819},{"style":1067},[2820],{"type":998,"value":1713},{"type":993,"tag":1026,"props":2822,"children":2823},{"style":1053},[2824],{"type":998,"value":2825},"(make, model)\n",{"type":993,"tag":1026,"props":2827,"children":2828},{"class":1028,"line":219},[2829,2833,2838,2842],{"type":993,"tag":1026,"props":2830,"children":2831},{"style":1067},[2832],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2834,"children":2835},{"style":1053},[2836],{"type":998,"value":2837},".doors ",{"type":993,"tag":1026,"props":2839,"children":2840},{"style":1041},[2841],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2843,"children":2844},{"style":1053},[2845],{"type":998,"value":2846}," doors\n",{"type":993,"tag":1026,"props":2848,"children":2849},{"class":1028,"line":228},[2850,2854,2859,2863,2868],{"type":993,"tag":1026,"props":2851,"children":2852},{"style":1067},[2853],{"type":998,"value":1083},{"type":993,"tag":1026,"props":2855,"children":2856},{"style":1053},[2857],{"type":998,"value":2858},"._fuel_level ",{"type":993,"tag":1026,"props":2860,"children":2861},{"style":1041},[2862],{"type":998,"value":1093},{"type":993,"tag":1026,"props":2864,"children":2865},{"style":1067},[2866],{"type":998,"value":2867}," 100",{"type":993,"tag":1026,"props":2869,"children":2870},{"style":1032},[2871],{"type":998,"value":2872},"        # Protected in subclass\n",{"type":993,"tag":1026,"props":2874,"children":2875},{"class":1028,"line":238},[2876],{"type":993,"tag":1026,"props":2877,"children":2878},{"style":1053},[2879],{"type":998,"value":1164},{"type":993,"tag":1026,"props":2881,"children":2882},{"class":1028,"line":247},[2883,2887,2892],{"type":993,"tag":1026,"props":2884,"children":2885},{"style":1041},[2886],{"type":998,"value":1064},{"type":993,"tag":1026,"props":2888,"children":2889},{"style":1047},[2890],{"type":998,"value":2891}," drive",{"type":993,"tag":1026,"props":2893,"children":2894},{"style":1053},[2895],{"type":998,"value":1324},{"type":993,"tag":1026,"props":2897,"children":2898},{"class":1028,"line":256},[2899,2903,2907,2911,2916,2921,2925,2929,2933,2937,2941],{"type":993,"tag":1026,"props":2900,"children":2901},{"style":1041},[2902],{"type":998,"value":1189},{"type":993,"tag":1026,"props":2904,"children":2905},{"style":1067},[2906],{"type":998,"value":1336},{"type":993,"tag":1026,"props":2908,"children":2909},{"style":1053},[2910],{"type":998,"value":2496},{"type":993,"tag":1026,"props":2912,"children":2913},{"style":1041},[2914],{"type":998,"value":2915},"==",{"type":993,"tag":1026,"props":2917,"children":2918},{"style":1122},[2919],{"type":998,"value":2920}," \"on\"",{"type":993,"tag":1026,"props":2922,"children":2923},{"style":1041},[2924],{"type":998,"value":1399},{"type":993,"tag":1026,"props":2926,"children":2927},{"style":1067},[2928],{"type":998,"value":1336},{"type":993,"tag":1026,"props":2930,"children":2931},{"style":1053},[2932],{"type":998,"value":2858},{"type":993,"tag":1026,"props":2934,"children":2935},{"style":1041},[2936],{"type":998,"value":1199},{"type":993,"tag":1026,"props":2938,"children":2939},{"style":1067},[2940],{"type":998,"value":1204},{"type":993,"tag":1026,"props":2942,"children":2943},{"style":1053},[2944],{"type":998,"value":1056},{"type":993,"tag":1026,"props":2946,"children":2947},{"class":1028,"line":265},[2948,2952,2956,2961],{"type":993,"tag":1026,"props":2949,"children":2950},{"style":1067},[2951],{"type":998,"value":1216},{"type":993,"tag":1026,"props":2953,"children":2954},{"style":1053},[2955],{"type":998,"value":2858},{"type":993,"tag":1026,"props":2957,"children":2958},{"style":1041},[2959],{"type":998,"value":2960},"-=",{"type":993,"tag":1026,"props":2962,"children":2963},{"style":1067},[2964],{"type":998,"value":2965}," 10\n",{"type":993,"tag":1026,"props":2967,"children":2968},{"class":1028,"line":274},[2969,2973,2977,2982,2986,2990,2994,2998,3002,3006],{"type":993,"tag":1026,"props":2970,"children":2971},{"style":1041},[2972],{"type":998,"value":1238},{"type":993,"tag":1026,"props":2974,"children":2975},{"style":1041},[2976],{"type":998,"value":1243},{"type":993,"tag":1026,"props":2978,"children":2979},{"style":1122},[2980],{"type":998,"value":2981},"\"Driving ",{"type":993,"tag":1026,"props":2983,"children":2984},{"style":1067},[2985],{"type":998,"value":1273},{"type":993,"tag":1026,"props":2987,"children":2988},{"style":1053},[2989],{"type":998,"value":2624},{"type":993,"tag":1026,"props":2991,"children":2992},{"style":1067},[2993],{"type":998,"value":1263},{"type":993,"tag":1026,"props":2995,"children":2996},{"style":1067},[2997],{"type":998,"value":2633},{"type":993,"tag":1026,"props":2999,"children":3000},{"style":1053},[3001],{"type":998,"value":2638},{"type":993,"tag":1026,"props":3003,"children":3004},{"style":1067},[3005],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3007,"children":3008},{"style":1122},[3009],{"type":998,"value":1287},{"type":993,"tag":1026,"props":3011,"children":3012},{"class":1028,"line":284},[3013,3017],{"type":993,"tag":1026,"props":3014,"children":3015},{"style":1041},[3016],{"type":998,"value":1295},{"type":993,"tag":1026,"props":3018,"children":3019},{"style":1122},[3020],{"type":998,"value":3021}," \"Cannot drive - check engine and fuel\"\n",{"type":993,"tag":1026,"props":3023,"children":3024},{"class":1028,"line":293},[3025],{"type":993,"tag":1026,"props":3026,"children":3027},{"style":1053},[3028],{"type":998,"value":1164},{"type":993,"tag":1026,"props":3030,"children":3031},{"class":1028,"line":302},[3032,3036,3041],{"type":993,"tag":1026,"props":3033,"children":3034},{"style":1041},[3035],{"type":998,"value":1064},{"type":993,"tag":1026,"props":3037,"children":3038},{"style":1047},[3039],{"type":998,"value":3040}," get_status",{"type":993,"tag":1026,"props":3042,"children":3043},{"style":1053},[3044],{"type":998,"value":1324},{"type":993,"tag":1026,"props":3046,"children":3047},{"class":1028,"line":311},[3048],{"type":993,"tag":1026,"props":3049,"children":3050},{"style":1032},[3051],{"type":998,"value":3052},"        # Subclass can access parent's protected attributes\n",{"type":993,"tag":1026,"props":3054,"children":3055},{"class":1028,"line":320},[3056,3060,3064,3069,3073,3078,3082,3087,3091,3096,3100],{"type":993,"tag":1026,"props":3057,"children":3058},{"style":1041},[3059],{"type":998,"value":1295},{"type":993,"tag":1026,"props":3061,"children":3062},{"style":1041},[3063],{"type":998,"value":1243},{"type":993,"tag":1026,"props":3065,"children":3066},{"style":1122},[3067],{"type":998,"value":3068},"\"Engine: ",{"type":993,"tag":1026,"props":3070,"children":3071},{"style":1067},[3072],{"type":998,"value":1273},{"type":993,"tag":1026,"props":3074,"children":3075},{"style":1053},[3076],{"type":998,"value":3077},"._engine_status",{"type":993,"tag":1026,"props":3079,"children":3080},{"style":1067},[3081],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3083,"children":3084},{"style":1122},[3085],{"type":998,"value":3086},", Fuel: ",{"type":993,"tag":1026,"props":3088,"children":3089},{"style":1067},[3090],{"type":998,"value":1273},{"type":993,"tag":1026,"props":3092,"children":3093},{"style":1053},[3094],{"type":998,"value":3095},"._fuel_level",{"type":993,"tag":1026,"props":3097,"children":3098},{"style":1067},[3099],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3101,"children":3102},{"style":1122},[3103],{"type":998,"value":3104},"%\"\n",{"type":993,"tag":1026,"props":3106,"children":3107},{"class":1028,"line":329},[3108],{"type":993,"tag":1026,"props":3109,"children":3110},{"emptyLinePlaceholder":13},[3111],{"type":998,"value":1425},{"type":993,"tag":1026,"props":3113,"children":3114},{"class":1028,"line":338},[3115],{"type":993,"tag":1026,"props":3116,"children":3117},{"style":1032},[3118],{"type":998,"value":3119},"# Protected attributes accessible but not recommended for external use\n",{"type":993,"tag":1026,"props":3121,"children":3122},{"class":1028,"line":347},[3123,3128,3132,3137,3142,3146,3151,3155,3160],{"type":993,"tag":1026,"props":3124,"children":3125},{"style":1053},[3126],{"type":998,"value":3127},"car ",{"type":993,"tag":1026,"props":3129,"children":3130},{"style":1041},[3131],{"type":998,"value":1093},{"type":993,"tag":1026,"props":3133,"children":3134},{"style":1053},[3135],{"type":998,"value":3136}," Car(",{"type":993,"tag":1026,"props":3138,"children":3139},{"style":1122},[3140],{"type":998,"value":3141},"\"Toyota\"",{"type":993,"tag":1026,"props":3143,"children":3144},{"style":1053},[3145],{"type":998,"value":1460},{"type":993,"tag":1026,"props":3147,"children":3148},{"style":1122},[3149],{"type":998,"value":3150},"\"Camry\"",{"type":993,"tag":1026,"props":3152,"children":3153},{"style":1053},[3154],{"type":998,"value":1460},{"type":993,"tag":1026,"props":3156,"children":3157},{"style":1067},[3158],{"type":998,"value":3159},"4",{"type":993,"tag":1026,"props":3161,"children":3162},{"style":1053},[3163],{"type":998,"value":1470},{"type":993,"tag":1026,"props":3165,"children":3166},{"class":1028,"line":356},[3167,3171],{"type":993,"tag":1026,"props":3168,"children":3169},{"style":1067},[3170],{"type":998,"value":1478},{"type":993,"tag":1026,"props":3172,"children":3173},{"style":1053},[3174],{"type":998,"value":3175},"(car.start())\n",{"type":993,"tag":1026,"props":3177,"children":3178},{"class":1028,"line":365},[3179,3183],{"type":993,"tag":1026,"props":3180,"children":3181},{"style":1067},[3182],{"type":998,"value":1478},{"type":993,"tag":1026,"props":3184,"children":3185},{"style":1053},[3186],{"type":998,"value":3187},"(car.get_status())\n",{"type":993,"tag":1026,"props":3189,"children":3190},{"class":1028,"line":374},[3191],{"type":993,"tag":1026,"props":3192,"children":3193},{"emptyLinePlaceholder":13},[3194],{"type":998,"value":1425},{"type":993,"tag":1026,"props":3196,"children":3197},{"class":1028,"line":384},[3198],{"type":993,"tag":1026,"props":3199,"children":3200},{"style":1032},[3201],{"type":998,"value":3202},"# You CAN access protected attributes, but you shouldn't\n",{"type":993,"tag":1026,"props":3204,"children":3205},{"class":1028,"line":393},[3206,3210,3214,3218,3223,3227,3232,3236,3240,3244],{"type":993,"tag":1026,"props":3207,"children":3208},{"style":1067},[3209],{"type":998,"value":1478},{"type":993,"tag":1026,"props":3211,"children":3212},{"style":1053},[3213],{"type":998,"value":2173},{"type":993,"tag":1026,"props":3215,"children":3216},{"style":1041},[3217],{"type":998,"value":2178},{"type":993,"tag":1026,"props":3219,"children":3220},{"style":1122},[3221],{"type":998,"value":3222},"\"Engine status: ",{"type":993,"tag":1026,"props":3224,"children":3225},{"style":1067},[3226],{"type":998,"value":1253},{"type":993,"tag":1026,"props":3228,"children":3229},{"style":1053},[3230],{"type":998,"value":3231},"car._engine_status",{"type":993,"tag":1026,"props":3233,"children":3234},{"style":1067},[3235],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3237,"children":3238},{"style":1122},[3239],{"type":998,"value":2201},{"type":993,"tag":1026,"props":3241,"children":3242},{"style":1053},[3243],{"type":998,"value":2314},{"type":993,"tag":1026,"props":3245,"children":3246},{"style":1032},[3247],{"type":998,"value":3248},"# Works but discouraged\n",{"type":993,"tag":1739,"props":3250,"children":3252},{"id":3251},"private-attributes",[3253],{"type":998,"value":3254},"Private Attributes",{"type":993,"tag":1001,"props":3256,"children":3257},{},[3258],{"type":998,"value":3259},"Private attributes use name mangling to make external access difficult, truly protecting internal implementation details from outside interference.",{"type":993,"tag":1012,"props":3261,"children":3262},{},[3263],{"type":993,"tag":1016,"props":3264,"children":3266},{"className":1018,"code":3265,"language":6,"meta":8,"style":8},"class SecureBankAccount:\n    def __init__(self, owner, pin, initial_balance):\n        self.owner = owner                    # Public\n        self._account_number = \"ACC123456\"    # Protected\n        self.__pin = pin                      # Private\n        self.__balance = initial_balance      # Private\n        self.__transaction_log = []           # Private\n    \n    def authenticate(self, entered_pin):\n        return self.__pin == entered_pin\n    \n    def withdraw(self, amount, pin):\n        if not self.authenticate(pin):\n            self.__log_transaction(\"Failed authentication\")\n            return \"Authentication failed\"\n        \n        if amount > self.__balance:\n            self.__log_transaction(f\"Failed withdrawal: ${amount}\")\n            return \"Insufficient funds\"\n        \n        self.__balance -= amount\n        self.__log_transaction(f\"Withdrawal: ${amount}\")\n        return f\"Withdrew ${amount}. Balance: ${self.__balance}\"\n    \n    def get_balance(self, pin):\n        if self.authenticate(pin):\n            return self.__balance\n        return \"Authentication required\"\n    \n    def __log_transaction(self, transaction):  # Private method\n        import datetime\n        self.__transaction_log.append({\n            \"time\": datetime.datetime.now(),\n            \"action\": transaction\n        })\n    \n    def get_recent_transactions(self, pin, count=5):\n        if self.authenticate(pin):\n            return self.__transaction_log[-count:]\n        return \"Authentication required\"\n\n# Private attributes are truly protected\naccount = SecureBankAccount(\"Alice\", \"1234\", 1000)\nprint(account.withdraw(100, \"1234\"))\nprint(account.get_balance(\"1234\"))\n\n# These won't work as expected\n# print(account.__pin)      # AttributeError\n# print(account.__balance)  # AttributeError\n\n# Name mangling makes private attributes accessible but difficult\nprint(f\"Mangled name access: {account._SecureBankAccount__balance}\")  # Works but strongly discouraged\n",[3267],{"type":993,"tag":1022,"props":3268,"children":3269},{"__ignoreMap":8},[3270,3286,3302,3326,3352,3378,3402,3427,3434,3451,3475,3482,3499,3519,3540,3552,3560,3584,3624,3636,3643,3662,3702,3751,3758,3774,3789,3804,3816,3823,3845,3858,3870,3883,3896,3904,3911,3941,3956,3982,3993,4000,4008,4049,4079,4099,4106,4114,4122,4130,4137,4145],{"type":993,"tag":1026,"props":3271,"children":3272},{"class":1028,"line":12},[3273,3277,3282],{"type":993,"tag":1026,"props":3274,"children":3275},{"style":1041},[3276],{"type":998,"value":1044},{"type":993,"tag":1026,"props":3278,"children":3279},{"style":1047},[3280],{"type":998,"value":3281}," SecureBankAccount",{"type":993,"tag":1026,"props":3283,"children":3284},{"style":1053},[3285],{"type":998,"value":1056},{"type":993,"tag":1026,"props":3287,"children":3288},{"class":1028,"line":27},[3289,3293,3297],{"type":993,"tag":1026,"props":3290,"children":3291},{"style":1041},[3292],{"type":998,"value":1064},{"type":993,"tag":1026,"props":3294,"children":3295},{"style":1067},[3296],{"type":998,"value":1070},{"type":993,"tag":1026,"props":3298,"children":3299},{"style":1053},[3300],{"type":998,"value":3301},"(self, owner, pin, initial_balance):\n",{"type":993,"tag":1026,"props":3303,"children":3304},{"class":1028,"line":36},[3305,3309,3313,3317,3322],{"type":993,"tag":1026,"props":3306,"children":3307},{"style":1067},[3308],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3310,"children":3311},{"style":1053},[3312],{"type":998,"value":1088},{"type":993,"tag":1026,"props":3314,"children":3315},{"style":1041},[3316],{"type":998,"value":1093},{"type":993,"tag":1026,"props":3318,"children":3319},{"style":1053},[3320],{"type":998,"value":3321}," owner                    ",{"type":993,"tag":1026,"props":3323,"children":3324},{"style":1032},[3325],{"type":998,"value":2459},{"type":993,"tag":1026,"props":3327,"children":3328},{"class":1028,"line":45},[3329,3333,3338,3342,3347],{"type":993,"tag":1026,"props":3330,"children":3331},{"style":1067},[3332],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3334,"children":3335},{"style":1053},[3336],{"type":998,"value":3337},"._account_number ",{"type":993,"tag":1026,"props":3339,"children":3340},{"style":1041},[3341],{"type":998,"value":1093},{"type":993,"tag":1026,"props":3343,"children":3344},{"style":1122},[3345],{"type":998,"value":3346}," \"ACC123456\"",{"type":993,"tag":1026,"props":3348,"children":3349},{"style":1032},[3350],{"type":998,"value":3351},"    # Protected\n",{"type":993,"tag":1026,"props":3353,"children":3354},{"class":1028,"line":54},[3355,3359,3364,3368,3373],{"type":993,"tag":1026,"props":3356,"children":3357},{"style":1067},[3358],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3360,"children":3361},{"style":1053},[3362],{"type":998,"value":3363},".__pin ",{"type":993,"tag":1026,"props":3365,"children":3366},{"style":1041},[3367],{"type":998,"value":1093},{"type":993,"tag":1026,"props":3369,"children":3370},{"style":1053},[3371],{"type":998,"value":3372}," pin                      ",{"type":993,"tag":1026,"props":3374,"children":3375},{"style":1032},[3376],{"type":998,"value":3377},"# Private\n",{"type":993,"tag":1026,"props":3379,"children":3380},{"class":1028,"line":63},[3381,3385,3389,3393,3398],{"type":993,"tag":1026,"props":3382,"children":3383},{"style":1067},[3384],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3386,"children":3387},{"style":1053},[3388],{"type":998,"value":1142},{"type":993,"tag":1026,"props":3390,"children":3391},{"style":1041},[3392],{"type":998,"value":1093},{"type":993,"tag":1026,"props":3394,"children":3395},{"style":1053},[3396],{"type":998,"value":3397}," initial_balance      ",{"type":993,"tag":1026,"props":3399,"children":3400},{"style":1032},[3401],{"type":998,"value":3377},{"type":993,"tag":1026,"props":3403,"children":3404},{"class":1028,"line":72},[3405,3409,3414,3418,3423],{"type":993,"tag":1026,"props":3406,"children":3407},{"style":1067},[3408],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3410,"children":3411},{"style":1053},[3412],{"type":998,"value":3413},".__transaction_log ",{"type":993,"tag":1026,"props":3415,"children":3416},{"style":1041},[3417],{"type":998,"value":1093},{"type":993,"tag":1026,"props":3419,"children":3420},{"style":1053},[3421],{"type":998,"value":3422}," []           ",{"type":993,"tag":1026,"props":3424,"children":3425},{"style":1032},[3426],{"type":998,"value":3377},{"type":993,"tag":1026,"props":3428,"children":3429},{"class":1028,"line":81},[3430],{"type":993,"tag":1026,"props":3431,"children":3432},{"style":1053},[3433],{"type":998,"value":1164},{"type":993,"tag":1026,"props":3435,"children":3436},{"class":1028,"line":91},[3437,3441,3446],{"type":993,"tag":1026,"props":3438,"children":3439},{"style":1041},[3440],{"type":998,"value":1064},{"type":993,"tag":1026,"props":3442,"children":3443},{"style":1047},[3444],{"type":998,"value":3445}," authenticate",{"type":993,"tag":1026,"props":3447,"children":3448},{"style":1053},[3449],{"type":998,"value":3450},"(self, entered_pin):\n",{"type":993,"tag":1026,"props":3452,"children":3453},{"class":1028,"line":100},[3454,3458,3462,3466,3470],{"type":993,"tag":1026,"props":3455,"children":3456},{"style":1041},[3457],{"type":998,"value":1295},{"type":993,"tag":1026,"props":3459,"children":3460},{"style":1067},[3461],{"type":998,"value":1336},{"type":993,"tag":1026,"props":3463,"children":3464},{"style":1053},[3465],{"type":998,"value":3363},{"type":993,"tag":1026,"props":3467,"children":3468},{"style":1041},[3469],{"type":998,"value":2915},{"type":993,"tag":1026,"props":3471,"children":3472},{"style":1053},[3473],{"type":998,"value":3474}," entered_pin\n",{"type":993,"tag":1026,"props":3476,"children":3477},{"class":1028,"line":109},[3478],{"type":993,"tag":1026,"props":3479,"children":3480},{"style":1053},[3481],{"type":998,"value":1164},{"type":993,"tag":1026,"props":3483,"children":3484},{"class":1028,"line":118},[3485,3489,3494],{"type":993,"tag":1026,"props":3486,"children":3487},{"style":1041},[3488],{"type":998,"value":1064},{"type":993,"tag":1026,"props":3490,"children":3491},{"style":1047},[3492],{"type":998,"value":3493}," withdraw",{"type":993,"tag":1026,"props":3495,"children":3496},{"style":1053},[3497],{"type":998,"value":3498},"(self, amount, pin):\n",{"type":993,"tag":1026,"props":3500,"children":3501},{"class":1028,"line":127},[3502,3506,3510,3514],{"type":993,"tag":1026,"props":3503,"children":3504},{"style":1041},[3505],{"type":998,"value":1189},{"type":993,"tag":1026,"props":3507,"children":3508},{"style":1041},[3509],{"type":998,"value":2699},{"type":993,"tag":1026,"props":3511,"children":3512},{"style":1067},[3513],{"type":998,"value":1336},{"type":993,"tag":1026,"props":3515,"children":3516},{"style":1053},[3517],{"type":998,"value":3518},".authenticate(pin):\n",{"type":993,"tag":1026,"props":3520,"children":3521},{"class":1028,"line":136},[3522,3526,3531,3536],{"type":993,"tag":1026,"props":3523,"children":3524},{"style":1067},[3525],{"type":998,"value":1216},{"type":993,"tag":1026,"props":3527,"children":3528},{"style":1053},[3529],{"type":998,"value":3530},".__log_transaction(",{"type":993,"tag":1026,"props":3532,"children":3533},{"style":1122},[3534],{"type":998,"value":3535},"\"Failed authentication\"",{"type":993,"tag":1026,"props":3537,"children":3538},{"style":1053},[3539],{"type":998,"value":1470},{"type":993,"tag":1026,"props":3541,"children":3542},{"class":1028,"line":146},[3543,3547],{"type":993,"tag":1026,"props":3544,"children":3545},{"style":1041},[3546],{"type":998,"value":1238},{"type":993,"tag":1026,"props":3548,"children":3549},{"style":1122},[3550],{"type":998,"value":3551}," \"Authentication failed\"\n",{"type":993,"tag":1026,"props":3553,"children":3554},{"class":1028,"line":155},[3555],{"type":993,"tag":1026,"props":3556,"children":3557},{"style":1053},[3558],{"type":998,"value":3559},"        \n",{"type":993,"tag":1026,"props":3561,"children":3562},{"class":1028,"line":164},[3563,3567,3571,3575,3579],{"type":993,"tag":1026,"props":3564,"children":3565},{"style":1041},[3566],{"type":998,"value":1189},{"type":993,"tag":1026,"props":3568,"children":3569},{"style":1053},[3570],{"type":998,"value":1194},{"type":993,"tag":1026,"props":3572,"children":3573},{"style":1041},[3574],{"type":998,"value":1199},{"type":993,"tag":1026,"props":3576,"children":3577},{"style":1067},[3578],{"type":998,"value":1336},{"type":993,"tag":1026,"props":3580,"children":3581},{"style":1053},[3582],{"type":998,"value":3583},".__balance:\n",{"type":993,"tag":1026,"props":3585,"children":3586},{"class":1028,"line":173},[3587,3591,3595,3599,3604,3608,3612,3616,3620],{"type":993,"tag":1026,"props":3588,"children":3589},{"style":1067},[3590],{"type":998,"value":1216},{"type":993,"tag":1026,"props":3592,"children":3593},{"style":1053},[3594],{"type":998,"value":3530},{"type":993,"tag":1026,"props":3596,"children":3597},{"style":1041},[3598],{"type":998,"value":2178},{"type":993,"tag":1026,"props":3600,"children":3601},{"style":1122},[3602],{"type":998,"value":3603},"\"Failed withdrawal: $",{"type":993,"tag":1026,"props":3605,"children":3606},{"style":1067},[3607],{"type":998,"value":1253},{"type":993,"tag":1026,"props":3609,"children":3610},{"style":1053},[3611],{"type":998,"value":1258},{"type":993,"tag":1026,"props":3613,"children":3614},{"style":1067},[3615],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3617,"children":3618},{"style":1122},[3619],{"type":998,"value":2201},{"type":993,"tag":1026,"props":3621,"children":3622},{"style":1053},[3623],{"type":998,"value":1470},{"type":993,"tag":1026,"props":3625,"children":3626},{"class":1028,"line":182},[3627,3631],{"type":993,"tag":1026,"props":3628,"children":3629},{"style":1041},[3630],{"type":998,"value":1238},{"type":993,"tag":1026,"props":3632,"children":3633},{"style":1122},[3634],{"type":998,"value":3635}," \"Insufficient funds\"\n",{"type":993,"tag":1026,"props":3637,"children":3638},{"class":1028,"line":191},[3639],{"type":993,"tag":1026,"props":3640,"children":3641},{"style":1053},[3642],{"type":998,"value":3559},{"type":993,"tag":1026,"props":3644,"children":3645},{"class":1028,"line":201},[3646,3650,3654,3658],{"type":993,"tag":1026,"props":3647,"children":3648},{"style":1067},[3649],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3651,"children":3652},{"style":1053},[3653],{"type":998,"value":1142},{"type":993,"tag":1026,"props":3655,"children":3656},{"style":1041},[3657],{"type":998,"value":2960},{"type":993,"tag":1026,"props":3659,"children":3660},{"style":1053},[3661],{"type":998,"value":1230},{"type":993,"tag":1026,"props":3663,"children":3664},{"class":1028,"line":210},[3665,3669,3673,3677,3682,3686,3690,3694,3698],{"type":993,"tag":1026,"props":3666,"children":3667},{"style":1067},[3668],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3670,"children":3671},{"style":1053},[3672],{"type":998,"value":3530},{"type":993,"tag":1026,"props":3674,"children":3675},{"style":1041},[3676],{"type":998,"value":2178},{"type":993,"tag":1026,"props":3678,"children":3679},{"style":1122},[3680],{"type":998,"value":3681},"\"Withdrawal: $",{"type":993,"tag":1026,"props":3683,"children":3684},{"style":1067},[3685],{"type":998,"value":1253},{"type":993,"tag":1026,"props":3687,"children":3688},{"style":1053},[3689],{"type":998,"value":1258},{"type":993,"tag":1026,"props":3691,"children":3692},{"style":1067},[3693],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3695,"children":3696},{"style":1122},[3697],{"type":998,"value":2201},{"type":993,"tag":1026,"props":3699,"children":3700},{"style":1053},[3701],{"type":998,"value":1470},{"type":993,"tag":1026,"props":3703,"children":3704},{"class":1028,"line":219},[3705,3709,3713,3718,3722,3726,3730,3734,3738,3743,3747],{"type":993,"tag":1026,"props":3706,"children":3707},{"style":1041},[3708],{"type":998,"value":1295},{"type":993,"tag":1026,"props":3710,"children":3711},{"style":1041},[3712],{"type":998,"value":1243},{"type":993,"tag":1026,"props":3714,"children":3715},{"style":1122},[3716],{"type":998,"value":3717},"\"Withdrew $",{"type":993,"tag":1026,"props":3719,"children":3720},{"style":1067},[3721],{"type":998,"value":1253},{"type":993,"tag":1026,"props":3723,"children":3724},{"style":1053},[3725],{"type":998,"value":1258},{"type":993,"tag":1026,"props":3727,"children":3728},{"style":1067},[3729],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3731,"children":3732},{"style":1122},[3733],{"type":998,"value":1268},{"type":993,"tag":1026,"props":3735,"children":3736},{"style":1067},[3737],{"type":998,"value":1273},{"type":993,"tag":1026,"props":3739,"children":3740},{"style":1053},[3741],{"type":998,"value":3742},".__balance",{"type":993,"tag":1026,"props":3744,"children":3745},{"style":1067},[3746],{"type":998,"value":1263},{"type":993,"tag":1026,"props":3748,"children":3749},{"style":1122},[3750],{"type":998,"value":1287},{"type":993,"tag":1026,"props":3752,"children":3753},{"class":1028,"line":228},[3754],{"type":993,"tag":1026,"props":3755,"children":3756},{"style":1053},[3757],{"type":998,"value":1164},{"type":993,"tag":1026,"props":3759,"children":3760},{"class":1028,"line":238},[3761,3765,3769],{"type":993,"tag":1026,"props":3762,"children":3763},{"style":1041},[3764],{"type":998,"value":1064},{"type":993,"tag":1026,"props":3766,"children":3767},{"style":1047},[3768],{"type":998,"value":1319},{"type":993,"tag":1026,"props":3770,"children":3771},{"style":1053},[3772],{"type":998,"value":3773},"(self, pin):\n",{"type":993,"tag":1026,"props":3775,"children":3776},{"class":1028,"line":247},[3777,3781,3785],{"type":993,"tag":1026,"props":3778,"children":3779},{"style":1041},[3780],{"type":998,"value":1189},{"type":993,"tag":1026,"props":3782,"children":3783},{"style":1067},[3784],{"type":998,"value":1336},{"type":993,"tag":1026,"props":3786,"children":3787},{"style":1053},[3788],{"type":998,"value":3518},{"type":993,"tag":1026,"props":3790,"children":3791},{"class":1028,"line":256},[3792,3796,3800],{"type":993,"tag":1026,"props":3793,"children":3794},{"style":1041},[3795],{"type":998,"value":1238},{"type":993,"tag":1026,"props":3797,"children":3798},{"style":1067},[3799],{"type":998,"value":1336},{"type":993,"tag":1026,"props":3801,"children":3802},{"style":1053},[3803],{"type":998,"value":1417},{"type":993,"tag":1026,"props":3805,"children":3806},{"class":1028,"line":265},[3807,3811],{"type":993,"tag":1026,"props":3808,"children":3809},{"style":1041},[3810],{"type":998,"value":1295},{"type":993,"tag":1026,"props":3812,"children":3813},{"style":1122},[3814],{"type":998,"value":3815}," \"Authentication required\"\n",{"type":993,"tag":1026,"props":3817,"children":3818},{"class":1028,"line":274},[3819],{"type":993,"tag":1026,"props":3820,"children":3821},{"style":1053},[3822],{"type":998,"value":1164},{"type":993,"tag":1026,"props":3824,"children":3825},{"class":1028,"line":284},[3826,3830,3835,3840],{"type":993,"tag":1026,"props":3827,"children":3828},{"style":1041},[3829],{"type":998,"value":1064},{"type":993,"tag":1026,"props":3831,"children":3832},{"style":1047},[3833],{"type":998,"value":3834}," __log_transaction",{"type":993,"tag":1026,"props":3836,"children":3837},{"style":1053},[3838],{"type":998,"value":3839},"(self, transaction):  ",{"type":993,"tag":1026,"props":3841,"children":3842},{"style":1032},[3843],{"type":998,"value":3844},"# Private method\n",{"type":993,"tag":1026,"props":3846,"children":3847},{"class":1028,"line":293},[3848,3853],{"type":993,"tag":1026,"props":3849,"children":3850},{"style":1041},[3851],{"type":998,"value":3852},"        import",{"type":993,"tag":1026,"props":3854,"children":3855},{"style":1053},[3856],{"type":998,"value":3857}," datetime\n",{"type":993,"tag":1026,"props":3859,"children":3860},{"class":1028,"line":302},[3861,3865],{"type":993,"tag":1026,"props":3862,"children":3863},{"style":1067},[3864],{"type":998,"value":1083},{"type":993,"tag":1026,"props":3866,"children":3867},{"style":1053},[3868],{"type":998,"value":3869},".__transaction_log.append({\n",{"type":993,"tag":1026,"props":3871,"children":3872},{"class":1028,"line":311},[3873,3878],{"type":993,"tag":1026,"props":3874,"children":3875},{"style":1122},[3876],{"type":998,"value":3877},"            \"time\"",{"type":993,"tag":1026,"props":3879,"children":3880},{"style":1053},[3881],{"type":998,"value":3882},": datetime.datetime.now(),\n",{"type":993,"tag":1026,"props":3884,"children":3885},{"class":1028,"line":320},[3886,3891],{"type":993,"tag":1026,"props":3887,"children":3888},{"style":1122},[3889],{"type":998,"value":3890},"            \"action\"",{"type":993,"tag":1026,"props":3892,"children":3893},{"style":1053},[3894],{"type":998,"value":3895},": transaction\n",{"type":993,"tag":1026,"props":3897,"children":3898},{"class":1028,"line":329},[3899],{"type":993,"tag":1026,"props":3900,"children":3901},{"style":1053},[3902],{"type":998,"value":3903},"        })\n",{"type":993,"tag":1026,"props":3905,"children":3906},{"class":1028,"line":338},[3907],{"type":993,"tag":1026,"props":3908,"children":3909},{"style":1053},[3910],{"type":998,"value":1164},{"type":993,"tag":1026,"props":3912,"children":3913},{"class":1028,"line":347},[3914,3918,3923,3928,3932,3937],{"type":993,"tag":1026,"props":3915,"children":3916},{"style":1041},[3917],{"type":998,"value":1064},{"type":993,"tag":1026,"props":3919,"children":3920},{"style":1047},[3921],{"type":998,"value":3922}," get_recent_transactions",{"type":993,"tag":1026,"props":3924,"children":3925},{"style":1053},[3926],{"type":998,"value":3927},"(self, pin, count",{"type":993,"tag":1026,"props":3929,"children":3930},{"style":1041},[3931],{"type":998,"value":1093},{"type":993,"tag":1026,"props":3933,"children":3934},{"style":1067},[3935],{"type":998,"value":3936},"5",{"type":993,"tag":1026,"props":3938,"children":3939},{"style":1053},[3940],{"type":998,"value":2787},{"type":993,"tag":1026,"props":3942,"children":3943},{"class":1028,"line":356},[3944,3948,3952],{"type":993,"tag":1026,"props":3945,"children":3946},{"style":1041},[3947],{"type":998,"value":1189},{"type":993,"tag":1026,"props":3949,"children":3950},{"style":1067},[3951],{"type":998,"value":1336},{"type":993,"tag":1026,"props":3953,"children":3954},{"style":1053},[3955],{"type":998,"value":3518},{"type":993,"tag":1026,"props":3957,"children":3958},{"class":1028,"line":365},[3959,3963,3967,3972,3977],{"type":993,"tag":1026,"props":3960,"children":3961},{"style":1041},[3962],{"type":998,"value":1238},{"type":993,"tag":1026,"props":3964,"children":3965},{"style":1067},[3966],{"type":998,"value":1336},{"type":993,"tag":1026,"props":3968,"children":3969},{"style":1053},[3970],{"type":998,"value":3971},".__transaction_log[",{"type":993,"tag":1026,"props":3973,"children":3974},{"style":1041},[3975],{"type":998,"value":3976},"-",{"type":993,"tag":1026,"props":3978,"children":3979},{"style":1053},[3980],{"type":998,"value":3981},"count:]\n",{"type":993,"tag":1026,"props":3983,"children":3984},{"class":1028,"line":374},[3985,3989],{"type":993,"tag":1026,"props":3986,"children":3987},{"style":1041},[3988],{"type":998,"value":1295},{"type":993,"tag":1026,"props":3990,"children":3991},{"style":1122},[3992],{"type":998,"value":3815},{"type":993,"tag":1026,"props":3994,"children":3995},{"class":1028,"line":384},[3996],{"type":993,"tag":1026,"props":3997,"children":3998},{"emptyLinePlaceholder":13},[3999],{"type":998,"value":1425},{"type":993,"tag":1026,"props":4001,"children":4002},{"class":1028,"line":393},[4003],{"type":993,"tag":1026,"props":4004,"children":4005},{"style":1032},[4006],{"type":998,"value":4007},"# Private attributes are truly protected\n",{"type":993,"tag":1026,"props":4009,"children":4010},{"class":1028,"line":402},[4011,4015,4019,4024,4028,4032,4037,4041,4045],{"type":993,"tag":1026,"props":4012,"children":4013},{"style":1053},[4014],{"type":998,"value":1441},{"type":993,"tag":1026,"props":4016,"children":4017},{"style":1041},[4018],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4020,"children":4021},{"style":1053},[4022],{"type":998,"value":4023}," SecureBankAccount(",{"type":993,"tag":1026,"props":4025,"children":4026},{"style":1122},[4027],{"type":998,"value":1455},{"type":993,"tag":1026,"props":4029,"children":4030},{"style":1053},[4031],{"type":998,"value":1460},{"type":993,"tag":1026,"props":4033,"children":4034},{"style":1122},[4035],{"type":998,"value":4036},"\"1234\"",{"type":993,"tag":1026,"props":4038,"children":4039},{"style":1053},[4040],{"type":998,"value":1460},{"type":993,"tag":1026,"props":4042,"children":4043},{"style":1067},[4044],{"type":998,"value":1465},{"type":993,"tag":1026,"props":4046,"children":4047},{"style":1053},[4048],{"type":998,"value":1470},{"type":993,"tag":1026,"props":4050,"children":4051},{"class":1028,"line":411},[4052,4056,4061,4066,4070,4074],{"type":993,"tag":1026,"props":4053,"children":4054},{"style":1067},[4055],{"type":998,"value":1478},{"type":993,"tag":1026,"props":4057,"children":4058},{"style":1053},[4059],{"type":998,"value":4060},"(account.withdraw(",{"type":993,"tag":1026,"props":4062,"children":4063},{"style":1067},[4064],{"type":998,"value":4065},"100",{"type":993,"tag":1026,"props":4067,"children":4068},{"style":1053},[4069],{"type":998,"value":1460},{"type":993,"tag":1026,"props":4071,"children":4072},{"style":1122},[4073],{"type":998,"value":4036},{"type":993,"tag":1026,"props":4075,"children":4076},{"style":1053},[4077],{"type":998,"value":4078},"))\n",{"type":993,"tag":1026,"props":4080,"children":4081},{"class":1028,"line":420},[4082,4086,4091,4095],{"type":993,"tag":1026,"props":4083,"children":4084},{"style":1067},[4085],{"type":998,"value":1478},{"type":993,"tag":1026,"props":4087,"children":4088},{"style":1053},[4089],{"type":998,"value":4090},"(account.get_balance(",{"type":993,"tag":1026,"props":4092,"children":4093},{"style":1122},[4094],{"type":998,"value":4036},{"type":993,"tag":1026,"props":4096,"children":4097},{"style":1053},[4098],{"type":998,"value":4078},{"type":993,"tag":1026,"props":4100,"children":4101},{"class":1028,"line":429},[4102],{"type":993,"tag":1026,"props":4103,"children":4104},{"emptyLinePlaceholder":13},[4105],{"type":998,"value":1425},{"type":993,"tag":1026,"props":4107,"children":4108},{"class":1028,"line":438},[4109],{"type":993,"tag":1026,"props":4110,"children":4111},{"style":1032},[4112],{"type":998,"value":4113},"# These won't work as expected\n",{"type":993,"tag":1026,"props":4115,"children":4116},{"class":1028,"line":447},[4117],{"type":993,"tag":1026,"props":4118,"children":4119},{"style":1032},[4120],{"type":998,"value":4121},"# print(account.__pin)      # AttributeError\n",{"type":993,"tag":1026,"props":4123,"children":4124},{"class":1028,"line":457},[4125],{"type":993,"tag":1026,"props":4126,"children":4127},{"style":1032},[4128],{"type":998,"value":4129},"# print(account.__balance)  # AttributeError\n",{"type":993,"tag":1026,"props":4131,"children":4132},{"class":1028,"line":466},[4133],{"type":993,"tag":1026,"props":4134,"children":4135},{"emptyLinePlaceholder":13},[4136],{"type":998,"value":1425},{"type":993,"tag":1026,"props":4138,"children":4139},{"class":1028,"line":475},[4140],{"type":993,"tag":1026,"props":4141,"children":4142},{"style":1032},[4143],{"type":998,"value":4144},"# Name mangling makes private attributes accessible but difficult\n",{"type":993,"tag":1026,"props":4146,"children":4147},{"class":1028,"line":484},[4148,4152,4156,4160,4165,4169,4174,4178,4182,4186],{"type":993,"tag":1026,"props":4149,"children":4150},{"style":1067},[4151],{"type":998,"value":1478},{"type":993,"tag":1026,"props":4153,"children":4154},{"style":1053},[4155],{"type":998,"value":2173},{"type":993,"tag":1026,"props":4157,"children":4158},{"style":1041},[4159],{"type":998,"value":2178},{"type":993,"tag":1026,"props":4161,"children":4162},{"style":1122},[4163],{"type":998,"value":4164},"\"Mangled name access: ",{"type":993,"tag":1026,"props":4166,"children":4167},{"style":1067},[4168],{"type":998,"value":1253},{"type":993,"tag":1026,"props":4170,"children":4171},{"style":1053},[4172],{"type":998,"value":4173},"account._SecureBankAccount__balance",{"type":993,"tag":1026,"props":4175,"children":4176},{"style":1067},[4177],{"type":998,"value":1263},{"type":993,"tag":1026,"props":4179,"children":4180},{"style":1122},[4181],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4183,"children":4184},{"style":1053},[4185],{"type":998,"value":2314},{"type":993,"tag":1026,"props":4187,"children":4188},{"style":1032},[4189],{"type":998,"value":4190},"# Works but strongly discouraged\n",{"type":993,"tag":1532,"props":4192,"children":4194},{"id":4193},"name-mangling-mechanism",[4195],{"type":998,"value":4196},"⚡ Name Mangling Mechanism",{"type":993,"tag":1001,"props":4198,"children":4199},{},[4200],{"type":998,"value":4201},"Python implements privacy through name mangling, which automatically renames private attributes to make them harder to access accidentally.",{"type":993,"tag":1739,"props":4203,"children":4205},{"id":4204},"how-name-mangling-works",[4206],{"type":998,"value":4207},"How Name Mangling Works",{"type":993,"tag":1001,"props":4209,"children":4210},{},[4211],{"type":998,"value":4212},"When Python encounters a private attribute (starting with double underscore), it automatically renames it by adding the class name prefix.",{"type":993,"tag":1012,"props":4214,"children":4215},{},[4216],{"type":993,"tag":1016,"props":4217,"children":4219},{"className":1018,"code":4218,"language":6,"meta":8,"style":8},"class Example:\n    def __init__(self):\n        self.public = \"I'm public\"\n        self._protected = \"I'm protected\"\n        self.__private = \"I'm private\"\n    \n    def show_attributes(self):\n        print(f\"Public: {self.public}\")\n        print(f\"Protected: {self._protected}\")\n        print(f\"Private: {self.__private}\")  # Works inside class\n\n# Name mangling demonstration\nobj = Example()\nobj.show_attributes()\n\n# Check how attributes are actually stored\nprint(\"\\nActual attribute names:\")\nfor attr in dir(obj):\n    if not attr.startswith('__') or attr.endswith('__'):\n        continue\n    print(f\"  {attr}\")\n\n# Accessing mangled name (not recommended)\nprint(f\"\\nMangled access: {obj._Example__private}\")\n",[4220],{"type":993,"tag":1022,"props":4221,"children":4222},{"__ignoreMap":8},[4223,4239,4254,4275,4296,4317,4324,4340,4382,4423,4469,4476,4484,4501,4509,4516,4524,4553,4581,4625,4633,4675,4682,4690],{"type":993,"tag":1026,"props":4224,"children":4225},{"class":1028,"line":12},[4226,4230,4235],{"type":993,"tag":1026,"props":4227,"children":4228},{"style":1041},[4229],{"type":998,"value":1044},{"type":993,"tag":1026,"props":4231,"children":4232},{"style":1047},[4233],{"type":998,"value":4234}," Example",{"type":993,"tag":1026,"props":4236,"children":4237},{"style":1053},[4238],{"type":998,"value":1056},{"type":993,"tag":1026,"props":4240,"children":4241},{"class":1028,"line":27},[4242,4246,4250],{"type":993,"tag":1026,"props":4243,"children":4244},{"style":1041},[4245],{"type":998,"value":1064},{"type":993,"tag":1026,"props":4247,"children":4248},{"style":1067},[4249],{"type":998,"value":1070},{"type":993,"tag":1026,"props":4251,"children":4252},{"style":1053},[4253],{"type":998,"value":1324},{"type":993,"tag":1026,"props":4255,"children":4256},{"class":1028,"line":36},[4257,4261,4266,4270],{"type":993,"tag":1026,"props":4258,"children":4259},{"style":1067},[4260],{"type":998,"value":1083},{"type":993,"tag":1026,"props":4262,"children":4263},{"style":1053},[4264],{"type":998,"value":4265},".public ",{"type":993,"tag":1026,"props":4267,"children":4268},{"style":1041},[4269],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4271,"children":4272},{"style":1122},[4273],{"type":998,"value":4274}," \"I'm public\"\n",{"type":993,"tag":1026,"props":4276,"children":4277},{"class":1028,"line":45},[4278,4282,4287,4291],{"type":993,"tag":1026,"props":4279,"children":4280},{"style":1067},[4281],{"type":998,"value":1083},{"type":993,"tag":1026,"props":4283,"children":4284},{"style":1053},[4285],{"type":998,"value":4286},"._protected ",{"type":993,"tag":1026,"props":4288,"children":4289},{"style":1041},[4290],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4292,"children":4293},{"style":1122},[4294],{"type":998,"value":4295}," \"I'm protected\"\n",{"type":993,"tag":1026,"props":4297,"children":4298},{"class":1028,"line":54},[4299,4303,4308,4312],{"type":993,"tag":1026,"props":4300,"children":4301},{"style":1067},[4302],{"type":998,"value":1083},{"type":993,"tag":1026,"props":4304,"children":4305},{"style":1053},[4306],{"type":998,"value":4307},".__private ",{"type":993,"tag":1026,"props":4309,"children":4310},{"style":1041},[4311],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4313,"children":4314},{"style":1122},[4315],{"type":998,"value":4316}," \"I'm private\"\n",{"type":993,"tag":1026,"props":4318,"children":4319},{"class":1028,"line":63},[4320],{"type":993,"tag":1026,"props":4321,"children":4322},{"style":1053},[4323],{"type":998,"value":1164},{"type":993,"tag":1026,"props":4325,"children":4326},{"class":1028,"line":72},[4327,4331,4336],{"type":993,"tag":1026,"props":4328,"children":4329},{"style":1041},[4330],{"type":998,"value":1064},{"type":993,"tag":1026,"props":4332,"children":4333},{"style":1047},[4334],{"type":998,"value":4335}," show_attributes",{"type":993,"tag":1026,"props":4337,"children":4338},{"style":1053},[4339],{"type":998,"value":1324},{"type":993,"tag":1026,"props":4341,"children":4342},{"class":1028,"line":81},[4343,4348,4352,4356,4361,4365,4370,4374,4378],{"type":993,"tag":1026,"props":4344,"children":4345},{"style":1067},[4346],{"type":998,"value":4347},"        print",{"type":993,"tag":1026,"props":4349,"children":4350},{"style":1053},[4351],{"type":998,"value":2173},{"type":993,"tag":1026,"props":4353,"children":4354},{"style":1041},[4355],{"type":998,"value":2178},{"type":993,"tag":1026,"props":4357,"children":4358},{"style":1122},[4359],{"type":998,"value":4360},"\"Public: ",{"type":993,"tag":1026,"props":4362,"children":4363},{"style":1067},[4364],{"type":998,"value":1273},{"type":993,"tag":1026,"props":4366,"children":4367},{"style":1053},[4368],{"type":998,"value":4369},".public",{"type":993,"tag":1026,"props":4371,"children":4372},{"style":1067},[4373],{"type":998,"value":1263},{"type":993,"tag":1026,"props":4375,"children":4376},{"style":1122},[4377],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4379,"children":4380},{"style":1053},[4381],{"type":998,"value":1470},{"type":993,"tag":1026,"props":4383,"children":4384},{"class":1028,"line":91},[4385,4389,4393,4397,4402,4406,4411,4415,4419],{"type":993,"tag":1026,"props":4386,"children":4387},{"style":1067},[4388],{"type":998,"value":4347},{"type":993,"tag":1026,"props":4390,"children":4391},{"style":1053},[4392],{"type":998,"value":2173},{"type":993,"tag":1026,"props":4394,"children":4395},{"style":1041},[4396],{"type":998,"value":2178},{"type":993,"tag":1026,"props":4398,"children":4399},{"style":1122},[4400],{"type":998,"value":4401},"\"Protected: ",{"type":993,"tag":1026,"props":4403,"children":4404},{"style":1067},[4405],{"type":998,"value":1273},{"type":993,"tag":1026,"props":4407,"children":4408},{"style":1053},[4409],{"type":998,"value":4410},"._protected",{"type":993,"tag":1026,"props":4412,"children":4413},{"style":1067},[4414],{"type":998,"value":1263},{"type":993,"tag":1026,"props":4416,"children":4417},{"style":1122},[4418],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4420,"children":4421},{"style":1053},[4422],{"type":998,"value":1470},{"type":993,"tag":1026,"props":4424,"children":4425},{"class":1028,"line":100},[4426,4430,4434,4438,4443,4447,4452,4456,4460,4464],{"type":993,"tag":1026,"props":4427,"children":4428},{"style":1067},[4429],{"type":998,"value":4347},{"type":993,"tag":1026,"props":4431,"children":4432},{"style":1053},[4433],{"type":998,"value":2173},{"type":993,"tag":1026,"props":4435,"children":4436},{"style":1041},[4437],{"type":998,"value":2178},{"type":993,"tag":1026,"props":4439,"children":4440},{"style":1122},[4441],{"type":998,"value":4442},"\"Private: ",{"type":993,"tag":1026,"props":4444,"children":4445},{"style":1067},[4446],{"type":998,"value":1273},{"type":993,"tag":1026,"props":4448,"children":4449},{"style":1053},[4450],{"type":998,"value":4451},".__private",{"type":993,"tag":1026,"props":4453,"children":4454},{"style":1067},[4455],{"type":998,"value":1263},{"type":993,"tag":1026,"props":4457,"children":4458},{"style":1122},[4459],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4461,"children":4462},{"style":1053},[4463],{"type":998,"value":2314},{"type":993,"tag":1026,"props":4465,"children":4466},{"style":1032},[4467],{"type":998,"value":4468},"# Works inside class\n",{"type":993,"tag":1026,"props":4470,"children":4471},{"class":1028,"line":109},[4472],{"type":993,"tag":1026,"props":4473,"children":4474},{"emptyLinePlaceholder":13},[4475],{"type":998,"value":1425},{"type":993,"tag":1026,"props":4477,"children":4478},{"class":1028,"line":118},[4479],{"type":993,"tag":1026,"props":4480,"children":4481},{"style":1032},[4482],{"type":998,"value":4483},"# Name mangling demonstration\n",{"type":993,"tag":1026,"props":4485,"children":4486},{"class":1028,"line":127},[4487,4492,4496],{"type":993,"tag":1026,"props":4488,"children":4489},{"style":1053},[4490],{"type":998,"value":4491},"obj ",{"type":993,"tag":1026,"props":4493,"children":4494},{"style":1041},[4495],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4497,"children":4498},{"style":1053},[4499],{"type":998,"value":4500}," Example()\n",{"type":993,"tag":1026,"props":4502,"children":4503},{"class":1028,"line":136},[4504],{"type":993,"tag":1026,"props":4505,"children":4506},{"style":1053},[4507],{"type":998,"value":4508},"obj.show_attributes()\n",{"type":993,"tag":1026,"props":4510,"children":4511},{"class":1028,"line":146},[4512],{"type":993,"tag":1026,"props":4513,"children":4514},{"emptyLinePlaceholder":13},[4515],{"type":998,"value":1425},{"type":993,"tag":1026,"props":4517,"children":4518},{"class":1028,"line":155},[4519],{"type":993,"tag":1026,"props":4520,"children":4521},{"style":1032},[4522],{"type":998,"value":4523},"# Check how attributes are actually stored\n",{"type":993,"tag":1026,"props":4525,"children":4526},{"class":1028,"line":164},[4527,4531,4535,4539,4544,4549],{"type":993,"tag":1026,"props":4528,"children":4529},{"style":1067},[4530],{"type":998,"value":1478},{"type":993,"tag":1026,"props":4532,"children":4533},{"style":1053},[4534],{"type":998,"value":2173},{"type":993,"tag":1026,"props":4536,"children":4537},{"style":1122},[4538],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4540,"children":4541},{"style":1067},[4542],{"type":998,"value":4543},"\\n",{"type":993,"tag":1026,"props":4545,"children":4546},{"style":1122},[4547],{"type":998,"value":4548},"Actual attribute names:\"",{"type":993,"tag":1026,"props":4550,"children":4551},{"style":1053},[4552],{"type":998,"value":1470},{"type":993,"tag":1026,"props":4554,"children":4555},{"class":1028,"line":173},[4556,4561,4566,4571,4576],{"type":993,"tag":1026,"props":4557,"children":4558},{"style":1041},[4559],{"type":998,"value":4560},"for",{"type":993,"tag":1026,"props":4562,"children":4563},{"style":1053},[4564],{"type":998,"value":4565}," attr ",{"type":993,"tag":1026,"props":4567,"children":4568},{"style":1041},[4569],{"type":998,"value":4570},"in",{"type":993,"tag":1026,"props":4572,"children":4573},{"style":1067},[4574],{"type":998,"value":4575}," dir",{"type":993,"tag":1026,"props":4577,"children":4578},{"style":1053},[4579],{"type":998,"value":4580},"(obj):\n",{"type":993,"tag":1026,"props":4582,"children":4583},{"class":1028,"line":182},[4584,4589,4593,4598,4603,4607,4612,4617,4621],{"type":993,"tag":1026,"props":4585,"children":4586},{"style":1041},[4587],{"type":998,"value":4588},"    if",{"type":993,"tag":1026,"props":4590,"children":4591},{"style":1041},[4592],{"type":998,"value":2699},{"type":993,"tag":1026,"props":4594,"children":4595},{"style":1053},[4596],{"type":998,"value":4597}," attr.startswith(",{"type":993,"tag":1026,"props":4599,"children":4600},{"style":1122},[4601],{"type":998,"value":4602},"'__'",{"type":993,"tag":1026,"props":4604,"children":4605},{"style":1053},[4606],{"type":998,"value":2253},{"type":993,"tag":1026,"props":4608,"children":4609},{"style":1041},[4610],{"type":998,"value":4611},"or",{"type":993,"tag":1026,"props":4613,"children":4614},{"style":1053},[4615],{"type":998,"value":4616}," attr.endswith(",{"type":993,"tag":1026,"props":4618,"children":4619},{"style":1122},[4620],{"type":998,"value":4602},{"type":993,"tag":1026,"props":4622,"children":4623},{"style":1053},[4624],{"type":998,"value":2787},{"type":993,"tag":1026,"props":4626,"children":4627},{"class":1028,"line":191},[4628],{"type":993,"tag":1026,"props":4629,"children":4630},{"style":1041},[4631],{"type":998,"value":4632},"        continue\n",{"type":993,"tag":1026,"props":4634,"children":4635},{"class":1028,"line":201},[4636,4641,4645,4649,4654,4658,4663,4667,4671],{"type":993,"tag":1026,"props":4637,"children":4638},{"style":1067},[4639],{"type":998,"value":4640},"    print",{"type":993,"tag":1026,"props":4642,"children":4643},{"style":1053},[4644],{"type":998,"value":2173},{"type":993,"tag":1026,"props":4646,"children":4647},{"style":1041},[4648],{"type":998,"value":2178},{"type":993,"tag":1026,"props":4650,"children":4651},{"style":1122},[4652],{"type":998,"value":4653},"\"  ",{"type":993,"tag":1026,"props":4655,"children":4656},{"style":1067},[4657],{"type":998,"value":1253},{"type":993,"tag":1026,"props":4659,"children":4660},{"style":1053},[4661],{"type":998,"value":4662},"attr",{"type":993,"tag":1026,"props":4664,"children":4665},{"style":1067},[4666],{"type":998,"value":1263},{"type":993,"tag":1026,"props":4668,"children":4669},{"style":1122},[4670],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4672,"children":4673},{"style":1053},[4674],{"type":998,"value":1470},{"type":993,"tag":1026,"props":4676,"children":4677},{"class":1028,"line":210},[4678],{"type":993,"tag":1026,"props":4679,"children":4680},{"emptyLinePlaceholder":13},[4681],{"type":998,"value":1425},{"type":993,"tag":1026,"props":4683,"children":4684},{"class":1028,"line":219},[4685],{"type":993,"tag":1026,"props":4686,"children":4687},{"style":1032},[4688],{"type":998,"value":4689},"# Accessing mangled name (not recommended)\n",{"type":993,"tag":1026,"props":4691,"children":4692},{"class":1028,"line":228},[4693,4697,4701,4705,4709,4713,4718,4722,4727,4731,4735],{"type":993,"tag":1026,"props":4694,"children":4695},{"style":1067},[4696],{"type":998,"value":1478},{"type":993,"tag":1026,"props":4698,"children":4699},{"style":1053},[4700],{"type":998,"value":2173},{"type":993,"tag":1026,"props":4702,"children":4703},{"style":1041},[4704],{"type":998,"value":2178},{"type":993,"tag":1026,"props":4706,"children":4707},{"style":1122},[4708],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4710,"children":4711},{"style":1067},[4712],{"type":998,"value":4543},{"type":993,"tag":1026,"props":4714,"children":4715},{"style":1122},[4716],{"type":998,"value":4717},"Mangled access: ",{"type":993,"tag":1026,"props":4719,"children":4720},{"style":1067},[4721],{"type":998,"value":1253},{"type":993,"tag":1026,"props":4723,"children":4724},{"style":1053},[4725],{"type":998,"value":4726},"obj._Example__private",{"type":993,"tag":1026,"props":4728,"children":4729},{"style":1067},[4730],{"type":998,"value":1263},{"type":993,"tag":1026,"props":4732,"children":4733},{"style":1122},[4734],{"type":998,"value":2201},{"type":993,"tag":1026,"props":4736,"children":4737},{"style":1053},[4738],{"type":998,"value":1470},{"type":993,"tag":1739,"props":4740,"children":4742},{"id":4741},"when-name-mangling-occurs",[4743],{"type":998,"value":4744},"When Name Mangling Occurs",{"type":993,"tag":1001,"props":4746,"children":4747},{},[4748],{"type":998,"value":4749},"Name mangling only applies to attributes that start with double underscores but don't end with them.",{"type":993,"tag":1012,"props":4751,"children":4752},{},[4753],{"type":993,"tag":1016,"props":4754,"children":4756},{"className":1018,"code":4755,"language":6,"meta":8,"style":8},"class ManglingDemo:\n    def __init__(self):\n        self.normal = \"Normal attribute\"\n        self._protected = \"Protected attribute\"\n        self.__private = \"Private attribute (mangled)\"\n        self.__special__ = \"Special method (not mangled)\"\n    \n    def __str__(self):  # Special method (not mangled)\n        return \"ManglingDemo instance\"\n    \n    def __private_method(self):  # Private method (mangled)\n        return \"This is a private method\"\n    \n    def _protected_method(self):  # Protected method (not mangled)\n        return \"This is a protected method\"\n    \n    def public_method(self):  # Public method (not mangled)\n        return \"This is a public method\"\n\ndemo = ManglingDemo()\nprint(\"Attributes without double underscore prefix/suffix:\")\nfor attr in sorted(dir(demo)):\n    if not attr.startswith('_'):\n        print(f\"  {attr}\")\n\nprint(\"\\nMangled attributes (private):\")\nfor attr in sorted(dir(demo)):\n    if attr.startswith('_ManglingDemo__'):\n        print(f\"  {attr}\")\n",[4757],{"type":993,"tag":1022,"props":4758,"children":4759},{"__ignoreMap":8},[4760,4776,4791,4812,4832,4852,4873,4880,4901,4913,4920,4941,4953,4960,4981,4993,5000,5021,5033,5040,5057,5077,5111,5135,5174,5181,5209,5240,5260],{"type":993,"tag":1026,"props":4761,"children":4762},{"class":1028,"line":12},[4763,4767,4772],{"type":993,"tag":1026,"props":4764,"children":4765},{"style":1041},[4766],{"type":998,"value":1044},{"type":993,"tag":1026,"props":4768,"children":4769},{"style":1047},[4770],{"type":998,"value":4771}," ManglingDemo",{"type":993,"tag":1026,"props":4773,"children":4774},{"style":1053},[4775],{"type":998,"value":1056},{"type":993,"tag":1026,"props":4777,"children":4778},{"class":1028,"line":27},[4779,4783,4787],{"type":993,"tag":1026,"props":4780,"children":4781},{"style":1041},[4782],{"type":998,"value":1064},{"type":993,"tag":1026,"props":4784,"children":4785},{"style":1067},[4786],{"type":998,"value":1070},{"type":993,"tag":1026,"props":4788,"children":4789},{"style":1053},[4790],{"type":998,"value":1324},{"type":993,"tag":1026,"props":4792,"children":4793},{"class":1028,"line":36},[4794,4798,4803,4807],{"type":993,"tag":1026,"props":4795,"children":4796},{"style":1067},[4797],{"type":998,"value":1083},{"type":993,"tag":1026,"props":4799,"children":4800},{"style":1053},[4801],{"type":998,"value":4802},".normal ",{"type":993,"tag":1026,"props":4804,"children":4805},{"style":1041},[4806],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4808,"children":4809},{"style":1122},[4810],{"type":998,"value":4811}," \"Normal attribute\"\n",{"type":993,"tag":1026,"props":4813,"children":4814},{"class":1028,"line":45},[4815,4819,4823,4827],{"type":993,"tag":1026,"props":4816,"children":4817},{"style":1067},[4818],{"type":998,"value":1083},{"type":993,"tag":1026,"props":4820,"children":4821},{"style":1053},[4822],{"type":998,"value":4286},{"type":993,"tag":1026,"props":4824,"children":4825},{"style":1041},[4826],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4828,"children":4829},{"style":1122},[4830],{"type":998,"value":4831}," \"Protected attribute\"\n",{"type":993,"tag":1026,"props":4833,"children":4834},{"class":1028,"line":54},[4835,4839,4843,4847],{"type":993,"tag":1026,"props":4836,"children":4837},{"style":1067},[4838],{"type":998,"value":1083},{"type":993,"tag":1026,"props":4840,"children":4841},{"style":1053},[4842],{"type":998,"value":4307},{"type":993,"tag":1026,"props":4844,"children":4845},{"style":1041},[4846],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4848,"children":4849},{"style":1122},[4850],{"type":998,"value":4851}," \"Private attribute (mangled)\"\n",{"type":993,"tag":1026,"props":4853,"children":4854},{"class":1028,"line":63},[4855,4859,4864,4868],{"type":993,"tag":1026,"props":4856,"children":4857},{"style":1067},[4858],{"type":998,"value":1083},{"type":993,"tag":1026,"props":4860,"children":4861},{"style":1053},[4862],{"type":998,"value":4863},".__special__ ",{"type":993,"tag":1026,"props":4865,"children":4866},{"style":1041},[4867],{"type":998,"value":1093},{"type":993,"tag":1026,"props":4869,"children":4870},{"style":1122},[4871],{"type":998,"value":4872}," \"Special method (not mangled)\"\n",{"type":993,"tag":1026,"props":4874,"children":4875},{"class":1028,"line":72},[4876],{"type":993,"tag":1026,"props":4877,"children":4878},{"style":1053},[4879],{"type":998,"value":1164},{"type":993,"tag":1026,"props":4881,"children":4882},{"class":1028,"line":81},[4883,4887,4892,4896],{"type":993,"tag":1026,"props":4884,"children":4885},{"style":1041},[4886],{"type":998,"value":1064},{"type":993,"tag":1026,"props":4888,"children":4889},{"style":1067},[4890],{"type":998,"value":4891}," __str__",{"type":993,"tag":1026,"props":4893,"children":4894},{"style":1053},[4895],{"type":998,"value":2683},{"type":993,"tag":1026,"props":4897,"children":4898},{"style":1032},[4899],{"type":998,"value":4900},"# Special method (not mangled)\n",{"type":993,"tag":1026,"props":4902,"children":4903},{"class":1028,"line":91},[4904,4908],{"type":993,"tag":1026,"props":4905,"children":4906},{"style":1041},[4907],{"type":998,"value":1295},{"type":993,"tag":1026,"props":4909,"children":4910},{"style":1122},[4911],{"type":998,"value":4912}," \"ManglingDemo instance\"\n",{"type":993,"tag":1026,"props":4914,"children":4915},{"class":1028,"line":100},[4916],{"type":993,"tag":1026,"props":4917,"children":4918},{"style":1053},[4919],{"type":998,"value":1164},{"type":993,"tag":1026,"props":4921,"children":4922},{"class":1028,"line":109},[4923,4927,4932,4936],{"type":993,"tag":1026,"props":4924,"children":4925},{"style":1041},[4926],{"type":998,"value":1064},{"type":993,"tag":1026,"props":4928,"children":4929},{"style":1047},[4930],{"type":998,"value":4931}," __private_method",{"type":993,"tag":1026,"props":4933,"children":4934},{"style":1053},[4935],{"type":998,"value":2683},{"type":993,"tag":1026,"props":4937,"children":4938},{"style":1032},[4939],{"type":998,"value":4940},"# Private method (mangled)\n",{"type":993,"tag":1026,"props":4942,"children":4943},{"class":1028,"line":118},[4944,4948],{"type":993,"tag":1026,"props":4945,"children":4946},{"style":1041},[4947],{"type":998,"value":1295},{"type":993,"tag":1026,"props":4949,"children":4950},{"style":1122},[4951],{"type":998,"value":4952}," \"This is a private method\"\n",{"type":993,"tag":1026,"props":4954,"children":4955},{"class":1028,"line":127},[4956],{"type":993,"tag":1026,"props":4957,"children":4958},{"style":1053},[4959],{"type":998,"value":1164},{"type":993,"tag":1026,"props":4961,"children":4962},{"class":1028,"line":136},[4963,4967,4972,4976],{"type":993,"tag":1026,"props":4964,"children":4965},{"style":1041},[4966],{"type":998,"value":1064},{"type":993,"tag":1026,"props":4968,"children":4969},{"style":1047},[4970],{"type":998,"value":4971}," _protected_method",{"type":993,"tag":1026,"props":4973,"children":4974},{"style":1053},[4975],{"type":998,"value":2683},{"type":993,"tag":1026,"props":4977,"children":4978},{"style":1032},[4979],{"type":998,"value":4980},"# Protected method (not mangled)\n",{"type":993,"tag":1026,"props":4982,"children":4983},{"class":1028,"line":146},[4984,4988],{"type":993,"tag":1026,"props":4985,"children":4986},{"style":1041},[4987],{"type":998,"value":1295},{"type":993,"tag":1026,"props":4989,"children":4990},{"style":1122},[4991],{"type":998,"value":4992}," \"This is a protected method\"\n",{"type":993,"tag":1026,"props":4994,"children":4995},{"class":1028,"line":155},[4996],{"type":993,"tag":1026,"props":4997,"children":4998},{"style":1053},[4999],{"type":998,"value":1164},{"type":993,"tag":1026,"props":5001,"children":5002},{"class":1028,"line":164},[5003,5007,5012,5016],{"type":993,"tag":1026,"props":5004,"children":5005},{"style":1041},[5006],{"type":998,"value":1064},{"type":993,"tag":1026,"props":5008,"children":5009},{"style":1047},[5010],{"type":998,"value":5011}," public_method",{"type":993,"tag":1026,"props":5013,"children":5014},{"style":1053},[5015],{"type":998,"value":2683},{"type":993,"tag":1026,"props":5017,"children":5018},{"style":1032},[5019],{"type":998,"value":5020},"# Public method (not mangled)\n",{"type":993,"tag":1026,"props":5022,"children":5023},{"class":1028,"line":173},[5024,5028],{"type":993,"tag":1026,"props":5025,"children":5026},{"style":1041},[5027],{"type":998,"value":1295},{"type":993,"tag":1026,"props":5029,"children":5030},{"style":1122},[5031],{"type":998,"value":5032}," \"This is a public method\"\n",{"type":993,"tag":1026,"props":5034,"children":5035},{"class":1028,"line":182},[5036],{"type":993,"tag":1026,"props":5037,"children":5038},{"emptyLinePlaceholder":13},[5039],{"type":998,"value":1425},{"type":993,"tag":1026,"props":5041,"children":5042},{"class":1028,"line":191},[5043,5048,5052],{"type":993,"tag":1026,"props":5044,"children":5045},{"style":1053},[5046],{"type":998,"value":5047},"demo ",{"type":993,"tag":1026,"props":5049,"children":5050},{"style":1041},[5051],{"type":998,"value":1093},{"type":993,"tag":1026,"props":5053,"children":5054},{"style":1053},[5055],{"type":998,"value":5056}," ManglingDemo()\n",{"type":993,"tag":1026,"props":5058,"children":5059},{"class":1028,"line":201},[5060,5064,5068,5073],{"type":993,"tag":1026,"props":5061,"children":5062},{"style":1067},[5063],{"type":998,"value":1478},{"type":993,"tag":1026,"props":5065,"children":5066},{"style":1053},[5067],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5069,"children":5070},{"style":1122},[5071],{"type":998,"value":5072},"\"Attributes without double underscore prefix/suffix:\"",{"type":993,"tag":1026,"props":5074,"children":5075},{"style":1053},[5076],{"type":998,"value":1470},{"type":993,"tag":1026,"props":5078,"children":5079},{"class":1028,"line":210},[5080,5084,5088,5092,5097,5101,5106],{"type":993,"tag":1026,"props":5081,"children":5082},{"style":1041},[5083],{"type":998,"value":4560},{"type":993,"tag":1026,"props":5085,"children":5086},{"style":1053},[5087],{"type":998,"value":4565},{"type":993,"tag":1026,"props":5089,"children":5090},{"style":1041},[5091],{"type":998,"value":4570},{"type":993,"tag":1026,"props":5093,"children":5094},{"style":1067},[5095],{"type":998,"value":5096}," sorted",{"type":993,"tag":1026,"props":5098,"children":5099},{"style":1053},[5100],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5102,"children":5103},{"style":1067},[5104],{"type":998,"value":5105},"dir",{"type":993,"tag":1026,"props":5107,"children":5108},{"style":1053},[5109],{"type":998,"value":5110},"(demo)):\n",{"type":993,"tag":1026,"props":5112,"children":5113},{"class":1028,"line":219},[5114,5118,5122,5126,5131],{"type":993,"tag":1026,"props":5115,"children":5116},{"style":1041},[5117],{"type":998,"value":4588},{"type":993,"tag":1026,"props":5119,"children":5120},{"style":1041},[5121],{"type":998,"value":2699},{"type":993,"tag":1026,"props":5123,"children":5124},{"style":1053},[5125],{"type":998,"value":4597},{"type":993,"tag":1026,"props":5127,"children":5128},{"style":1122},[5129],{"type":998,"value":5130},"'_'",{"type":993,"tag":1026,"props":5132,"children":5133},{"style":1053},[5134],{"type":998,"value":2787},{"type":993,"tag":1026,"props":5136,"children":5137},{"class":1028,"line":228},[5138,5142,5146,5150,5154,5158,5162,5166,5170],{"type":993,"tag":1026,"props":5139,"children":5140},{"style":1067},[5141],{"type":998,"value":4347},{"type":993,"tag":1026,"props":5143,"children":5144},{"style":1053},[5145],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5147,"children":5148},{"style":1041},[5149],{"type":998,"value":2178},{"type":993,"tag":1026,"props":5151,"children":5152},{"style":1122},[5153],{"type":998,"value":4653},{"type":993,"tag":1026,"props":5155,"children":5156},{"style":1067},[5157],{"type":998,"value":1253},{"type":993,"tag":1026,"props":5159,"children":5160},{"style":1053},[5161],{"type":998,"value":4662},{"type":993,"tag":1026,"props":5163,"children":5164},{"style":1067},[5165],{"type":998,"value":1263},{"type":993,"tag":1026,"props":5167,"children":5168},{"style":1122},[5169],{"type":998,"value":2201},{"type":993,"tag":1026,"props":5171,"children":5172},{"style":1053},[5173],{"type":998,"value":1470},{"type":993,"tag":1026,"props":5175,"children":5176},{"class":1028,"line":238},[5177],{"type":993,"tag":1026,"props":5178,"children":5179},{"emptyLinePlaceholder":13},[5180],{"type":998,"value":1425},{"type":993,"tag":1026,"props":5182,"children":5183},{"class":1028,"line":247},[5184,5188,5192,5196,5200,5205],{"type":993,"tag":1026,"props":5185,"children":5186},{"style":1067},[5187],{"type":998,"value":1478},{"type":993,"tag":1026,"props":5189,"children":5190},{"style":1053},[5191],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5193,"children":5194},{"style":1122},[5195],{"type":998,"value":2201},{"type":993,"tag":1026,"props":5197,"children":5198},{"style":1067},[5199],{"type":998,"value":4543},{"type":993,"tag":1026,"props":5201,"children":5202},{"style":1122},[5203],{"type":998,"value":5204},"Mangled attributes (private):\"",{"type":993,"tag":1026,"props":5206,"children":5207},{"style":1053},[5208],{"type":998,"value":1470},{"type":993,"tag":1026,"props":5210,"children":5211},{"class":1028,"line":256},[5212,5216,5220,5224,5228,5232,5236],{"type":993,"tag":1026,"props":5213,"children":5214},{"style":1041},[5215],{"type":998,"value":4560},{"type":993,"tag":1026,"props":5217,"children":5218},{"style":1053},[5219],{"type":998,"value":4565},{"type":993,"tag":1026,"props":5221,"children":5222},{"style":1041},[5223],{"type":998,"value":4570},{"type":993,"tag":1026,"props":5225,"children":5226},{"style":1067},[5227],{"type":998,"value":5096},{"type":993,"tag":1026,"props":5229,"children":5230},{"style":1053},[5231],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5233,"children":5234},{"style":1067},[5235],{"type":998,"value":5105},{"type":993,"tag":1026,"props":5237,"children":5238},{"style":1053},[5239],{"type":998,"value":5110},{"type":993,"tag":1026,"props":5241,"children":5242},{"class":1028,"line":265},[5243,5247,5251,5256],{"type":993,"tag":1026,"props":5244,"children":5245},{"style":1041},[5246],{"type":998,"value":4588},{"type":993,"tag":1026,"props":5248,"children":5249},{"style":1053},[5250],{"type":998,"value":4597},{"type":993,"tag":1026,"props":5252,"children":5253},{"style":1122},[5254],{"type":998,"value":5255},"'_ManglingDemo__'",{"type":993,"tag":1026,"props":5257,"children":5258},{"style":1053},[5259],{"type":998,"value":2787},{"type":993,"tag":1026,"props":5261,"children":5262},{"class":1028,"line":274},[5263,5267,5271,5275,5279,5283,5287,5291,5295],{"type":993,"tag":1026,"props":5264,"children":5265},{"style":1067},[5266],{"type":998,"value":4347},{"type":993,"tag":1026,"props":5268,"children":5269},{"style":1053},[5270],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5272,"children":5273},{"style":1041},[5274],{"type":998,"value":2178},{"type":993,"tag":1026,"props":5276,"children":5277},{"style":1122},[5278],{"type":998,"value":4653},{"type":993,"tag":1026,"props":5280,"children":5281},{"style":1067},[5282],{"type":998,"value":1253},{"type":993,"tag":1026,"props":5284,"children":5285},{"style":1053},[5286],{"type":998,"value":4662},{"type":993,"tag":1026,"props":5288,"children":5289},{"style":1067},[5290],{"type":998,"value":1263},{"type":993,"tag":1026,"props":5292,"children":5293},{"style":1122},[5294],{"type":998,"value":2201},{"type":993,"tag":1026,"props":5296,"children":5297},{"style":1053},[5298],{"type":998,"value":1470},{"type":993,"tag":1532,"props":5300,"children":5302},{"id":5301},"access-control-patterns",[5303],{"type":998,"value":5304},"🚀 Access Control Patterns",{"type":993,"tag":1739,"props":5306,"children":5308},{"id":5307},"property-based-access-control",[5309],{"type":998,"value":5310},"Property-Based Access Control",{"type":993,"tag":1001,"props":5312,"children":5313},{},[5314],{"type":998,"value":5315},"Use properties to create controlled access to attributes while maintaining a clean interface.",{"type":993,"tag":1012,"props":5317,"children":5318},{},[5319],{"type":993,"tag":1016,"props":5320,"children":5322},{"className":1018,"code":5321,"language":6,"meta":8,"style":8},"class Temperature:\n    def __init__(self, celsius=0):\n        self.__celsius = celsius  # Private storage\n    \n    @property\n    def celsius(self):\n        \"\"\"Get temperature in Celsius\"\"\"\n        return self.__celsius\n    \n    @celsius.setter\n    def celsius(self, value):\n        \"\"\"Set temperature in Celsius with validation\"\"\"\n        if value \u003C -273.15:\n            raise ValueError(\"Temperature cannot be below absolute zero\")\n        self.__celsius = value\n    \n    @property\n    def fahrenheit(self):\n        \"\"\"Get temperature in Fahrenheit\"\"\"\n        return (self.__celsius * 9/5) + 32\n    \n    @fahrenheit.setter\n    def fahrenheit(self, value):\n        \"\"\"Set temperature in Fahrenheit\"\"\"\n        celsius = (value - 32) * 5/9\n        self.celsius = celsius  # Use the celsius setter for validation\n    \n    @property\n    def kelvin(self):\n        \"\"\"Get temperature in Kelvin\"\"\"\n        return self.__celsius + 273.15\n\n# Property-based access control\ntemp = Temperature(25)\nprint(f\"Celsius: {temp.celsius}\")\nprint(f\"Fahrenheit: {temp.fahrenheit}\")\nprint(f\"Kelvin: {temp.kelvin}\")\n\n# Controlled modification\ntemp.fahrenheit = 100  # Sets internal celsius value\nprint(f\"After setting to 100°F: {temp.celsius:.2f}°C\")\n\n# Validation in action\ntry:\n    temp.celsius = -300  # This will raise an error\nexcept ValueError as e:\n    print(f\"Error: {e}\")\n",[5323],{"type":993,"tag":1022,"props":5324,"children":5325},{"__ignoreMap":8},[5326,5342,5371,5397,5404,5417,5433,5441,5457,5464,5472,5488,5496,5527,5553,5573,5580,5591,5607,5615,5669,5676,5684,5699,5707,5755,5780,5787,5798,5814,5822,5846,5853,5861,5887,5928,5969,6010,6017,6025,6046,6092,6099,6107,6119,6145,6167],{"type":993,"tag":1026,"props":5327,"children":5328},{"class":1028,"line":12},[5329,5333,5338],{"type":993,"tag":1026,"props":5330,"children":5331},{"style":1041},[5332],{"type":998,"value":1044},{"type":993,"tag":1026,"props":5334,"children":5335},{"style":1047},[5336],{"type":998,"value":5337}," Temperature",{"type":993,"tag":1026,"props":5339,"children":5340},{"style":1053},[5341],{"type":998,"value":1056},{"type":993,"tag":1026,"props":5343,"children":5344},{"class":1028,"line":27},[5345,5349,5353,5358,5362,5367],{"type":993,"tag":1026,"props":5346,"children":5347},{"style":1041},[5348],{"type":998,"value":1064},{"type":993,"tag":1026,"props":5350,"children":5351},{"style":1067},[5352],{"type":998,"value":1070},{"type":993,"tag":1026,"props":5354,"children":5355},{"style":1053},[5356],{"type":998,"value":5357},"(self, celsius",{"type":993,"tag":1026,"props":5359,"children":5360},{"style":1041},[5361],{"type":998,"value":1093},{"type":993,"tag":1026,"props":5363,"children":5364},{"style":1067},[5365],{"type":998,"value":5366},"0",{"type":993,"tag":1026,"props":5368,"children":5369},{"style":1053},[5370],{"type":998,"value":2787},{"type":993,"tag":1026,"props":5372,"children":5373},{"class":1028,"line":36},[5374,5378,5383,5387,5392],{"type":993,"tag":1026,"props":5375,"children":5376},{"style":1067},[5377],{"type":998,"value":1083},{"type":993,"tag":1026,"props":5379,"children":5380},{"style":1053},[5381],{"type":998,"value":5382},".__celsius ",{"type":993,"tag":1026,"props":5384,"children":5385},{"style":1041},[5386],{"type":998,"value":1093},{"type":993,"tag":1026,"props":5388,"children":5389},{"style":1053},[5390],{"type":998,"value":5391}," celsius  ",{"type":993,"tag":1026,"props":5393,"children":5394},{"style":1032},[5395],{"type":998,"value":5396},"# Private storage\n",{"type":993,"tag":1026,"props":5398,"children":5399},{"class":1028,"line":45},[5400],{"type":993,"tag":1026,"props":5401,"children":5402},{"style":1053},[5403],{"type":998,"value":1164},{"type":993,"tag":1026,"props":5405,"children":5406},{"class":1028,"line":54},[5407,5412],{"type":993,"tag":1026,"props":5408,"children":5409},{"style":1047},[5410],{"type":998,"value":5411},"    @",{"type":993,"tag":1026,"props":5413,"children":5414},{"style":1067},[5415],{"type":998,"value":5416},"property\n",{"type":993,"tag":1026,"props":5418,"children":5419},{"class":1028,"line":63},[5420,5424,5429],{"type":993,"tag":1026,"props":5421,"children":5422},{"style":1041},[5423],{"type":998,"value":1064},{"type":993,"tag":1026,"props":5425,"children":5426},{"style":1047},[5427],{"type":998,"value":5428}," celsius",{"type":993,"tag":1026,"props":5430,"children":5431},{"style":1053},[5432],{"type":998,"value":1324},{"type":993,"tag":1026,"props":5434,"children":5435},{"class":1028,"line":72},[5436],{"type":993,"tag":1026,"props":5437,"children":5438},{"style":1122},[5439],{"type":998,"value":5440},"        \"\"\"Get temperature in Celsius\"\"\"\n",{"type":993,"tag":1026,"props":5442,"children":5443},{"class":1028,"line":81},[5444,5448,5452],{"type":993,"tag":1026,"props":5445,"children":5446},{"style":1041},[5447],{"type":998,"value":1295},{"type":993,"tag":1026,"props":5449,"children":5450},{"style":1067},[5451],{"type":998,"value":1336},{"type":993,"tag":1026,"props":5453,"children":5454},{"style":1053},[5455],{"type":998,"value":5456},".__celsius\n",{"type":993,"tag":1026,"props":5458,"children":5459},{"class":1028,"line":91},[5460],{"type":993,"tag":1026,"props":5461,"children":5462},{"style":1053},[5463],{"type":998,"value":1164},{"type":993,"tag":1026,"props":5465,"children":5466},{"class":1028,"line":100},[5467],{"type":993,"tag":1026,"props":5468,"children":5469},{"style":1047},[5470],{"type":998,"value":5471},"    @celsius.setter\n",{"type":993,"tag":1026,"props":5473,"children":5474},{"class":1028,"line":109},[5475,5479,5483],{"type":993,"tag":1026,"props":5476,"children":5477},{"style":1041},[5478],{"type":998,"value":1064},{"type":993,"tag":1026,"props":5480,"children":5481},{"style":1047},[5482],{"type":998,"value":5428},{"type":993,"tag":1026,"props":5484,"children":5485},{"style":1053},[5486],{"type":998,"value":5487},"(self, value):\n",{"type":993,"tag":1026,"props":5489,"children":5490},{"class":1028,"line":118},[5491],{"type":993,"tag":1026,"props":5492,"children":5493},{"style":1122},[5494],{"type":998,"value":5495},"        \"\"\"Set temperature in Celsius with validation\"\"\"\n",{"type":993,"tag":1026,"props":5497,"children":5498},{"class":1028,"line":127},[5499,5503,5508,5513,5518,5523],{"type":993,"tag":1026,"props":5500,"children":5501},{"style":1041},[5502],{"type":998,"value":1189},{"type":993,"tag":1026,"props":5504,"children":5505},{"style":1053},[5506],{"type":998,"value":5507}," value ",{"type":993,"tag":1026,"props":5509,"children":5510},{"style":1041},[5511],{"type":998,"value":5512},"\u003C",{"type":993,"tag":1026,"props":5514,"children":5515},{"style":1041},[5516],{"type":998,"value":5517}," -",{"type":993,"tag":1026,"props":5519,"children":5520},{"style":1067},[5521],{"type":998,"value":5522},"273.15",{"type":993,"tag":1026,"props":5524,"children":5525},{"style":1053},[5526],{"type":998,"value":1056},{"type":993,"tag":1026,"props":5528,"children":5529},{"class":1028,"line":136},[5530,5535,5540,5544,5549],{"type":993,"tag":1026,"props":5531,"children":5532},{"style":1041},[5533],{"type":998,"value":5534},"            raise",{"type":993,"tag":1026,"props":5536,"children":5537},{"style":1067},[5538],{"type":998,"value":5539}," ValueError",{"type":993,"tag":1026,"props":5541,"children":5542},{"style":1053},[5543],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5545,"children":5546},{"style":1122},[5547],{"type":998,"value":5548},"\"Temperature cannot be below absolute zero\"",{"type":993,"tag":1026,"props":5550,"children":5551},{"style":1053},[5552],{"type":998,"value":1470},{"type":993,"tag":1026,"props":5554,"children":5555},{"class":1028,"line":146},[5556,5560,5564,5568],{"type":993,"tag":1026,"props":5557,"children":5558},{"style":1067},[5559],{"type":998,"value":1083},{"type":993,"tag":1026,"props":5561,"children":5562},{"style":1053},[5563],{"type":998,"value":5382},{"type":993,"tag":1026,"props":5565,"children":5566},{"style":1041},[5567],{"type":998,"value":1093},{"type":993,"tag":1026,"props":5569,"children":5570},{"style":1053},[5571],{"type":998,"value":5572}," value\n",{"type":993,"tag":1026,"props":5574,"children":5575},{"class":1028,"line":155},[5576],{"type":993,"tag":1026,"props":5577,"children":5578},{"style":1053},[5579],{"type":998,"value":1164},{"type":993,"tag":1026,"props":5581,"children":5582},{"class":1028,"line":164},[5583,5587],{"type":993,"tag":1026,"props":5584,"children":5585},{"style":1047},[5586],{"type":998,"value":5411},{"type":993,"tag":1026,"props":5588,"children":5589},{"style":1067},[5590],{"type":998,"value":5416},{"type":993,"tag":1026,"props":5592,"children":5593},{"class":1028,"line":173},[5594,5598,5603],{"type":993,"tag":1026,"props":5595,"children":5596},{"style":1041},[5597],{"type":998,"value":1064},{"type":993,"tag":1026,"props":5599,"children":5600},{"style":1047},[5601],{"type":998,"value":5602}," fahrenheit",{"type":993,"tag":1026,"props":5604,"children":5605},{"style":1053},[5606],{"type":998,"value":1324},{"type":993,"tag":1026,"props":5608,"children":5609},{"class":1028,"line":182},[5610],{"type":993,"tag":1026,"props":5611,"children":5612},{"style":1122},[5613],{"type":998,"value":5614},"        \"\"\"Get temperature in Fahrenheit\"\"\"\n",{"type":993,"tag":1026,"props":5616,"children":5617},{"class":1028,"line":191},[5618,5622,5627,5632,5636,5641,5646,5651,5655,5659,5664],{"type":993,"tag":1026,"props":5619,"children":5620},{"style":1041},[5621],{"type":998,"value":1295},{"type":993,"tag":1026,"props":5623,"children":5624},{"style":1053},[5625],{"type":998,"value":5626}," (",{"type":993,"tag":1026,"props":5628,"children":5629},{"style":1067},[5630],{"type":998,"value":5631},"self",{"type":993,"tag":1026,"props":5633,"children":5634},{"style":1053},[5635],{"type":998,"value":5382},{"type":993,"tag":1026,"props":5637,"children":5638},{"style":1041},[5639],{"type":998,"value":5640},"*",{"type":993,"tag":1026,"props":5642,"children":5643},{"style":1067},[5644],{"type":998,"value":5645}," 9",{"type":993,"tag":1026,"props":5647,"children":5648},{"style":1041},[5649],{"type":998,"value":5650},"/",{"type":993,"tag":1026,"props":5652,"children":5653},{"style":1067},[5654],{"type":998,"value":3936},{"type":993,"tag":1026,"props":5656,"children":5657},{"style":1053},[5658],{"type":998,"value":2253},{"type":993,"tag":1026,"props":5660,"children":5661},{"style":1041},[5662],{"type":998,"value":5663},"+",{"type":993,"tag":1026,"props":5665,"children":5666},{"style":1067},[5667],{"type":998,"value":5668}," 32\n",{"type":993,"tag":1026,"props":5670,"children":5671},{"class":1028,"line":201},[5672],{"type":993,"tag":1026,"props":5673,"children":5674},{"style":1053},[5675],{"type":998,"value":1164},{"type":993,"tag":1026,"props":5677,"children":5678},{"class":1028,"line":210},[5679],{"type":993,"tag":1026,"props":5680,"children":5681},{"style":1047},[5682],{"type":998,"value":5683},"    @fahrenheit.setter\n",{"type":993,"tag":1026,"props":5685,"children":5686},{"class":1028,"line":219},[5687,5691,5695],{"type":993,"tag":1026,"props":5688,"children":5689},{"style":1041},[5690],{"type":998,"value":1064},{"type":993,"tag":1026,"props":5692,"children":5693},{"style":1047},[5694],{"type":998,"value":5602},{"type":993,"tag":1026,"props":5696,"children":5697},{"style":1053},[5698],{"type":998,"value":5487},{"type":993,"tag":1026,"props":5700,"children":5701},{"class":1028,"line":228},[5702],{"type":993,"tag":1026,"props":5703,"children":5704},{"style":1122},[5705],{"type":998,"value":5706},"        \"\"\"Set temperature in Fahrenheit\"\"\"\n",{"type":993,"tag":1026,"props":5708,"children":5709},{"class":1028,"line":238},[5710,5715,5719,5724,5728,5733,5737,5741,5746,5750],{"type":993,"tag":1026,"props":5711,"children":5712},{"style":1053},[5713],{"type":998,"value":5714},"        celsius ",{"type":993,"tag":1026,"props":5716,"children":5717},{"style":1041},[5718],{"type":998,"value":1093},{"type":993,"tag":1026,"props":5720,"children":5721},{"style":1053},[5722],{"type":998,"value":5723}," (value ",{"type":993,"tag":1026,"props":5725,"children":5726},{"style":1041},[5727],{"type":998,"value":3976},{"type":993,"tag":1026,"props":5729,"children":5730},{"style":1067},[5731],{"type":998,"value":5732}," 32",{"type":993,"tag":1026,"props":5734,"children":5735},{"style":1053},[5736],{"type":998,"value":2253},{"type":993,"tag":1026,"props":5738,"children":5739},{"style":1041},[5740],{"type":998,"value":5640},{"type":993,"tag":1026,"props":5742,"children":5743},{"style":1067},[5744],{"type":998,"value":5745}," 5",{"type":993,"tag":1026,"props":5747,"children":5748},{"style":1041},[5749],{"type":998,"value":5650},{"type":993,"tag":1026,"props":5751,"children":5752},{"style":1067},[5753],{"type":998,"value":5754},"9\n",{"type":993,"tag":1026,"props":5756,"children":5757},{"class":1028,"line":247},[5758,5762,5767,5771,5775],{"type":993,"tag":1026,"props":5759,"children":5760},{"style":1067},[5761],{"type":998,"value":1083},{"type":993,"tag":1026,"props":5763,"children":5764},{"style":1053},[5765],{"type":998,"value":5766},".celsius ",{"type":993,"tag":1026,"props":5768,"children":5769},{"style":1041},[5770],{"type":998,"value":1093},{"type":993,"tag":1026,"props":5772,"children":5773},{"style":1053},[5774],{"type":998,"value":5391},{"type":993,"tag":1026,"props":5776,"children":5777},{"style":1032},[5778],{"type":998,"value":5779},"# Use the celsius setter for validation\n",{"type":993,"tag":1026,"props":5781,"children":5782},{"class":1028,"line":256},[5783],{"type":993,"tag":1026,"props":5784,"children":5785},{"style":1053},[5786],{"type":998,"value":1164},{"type":993,"tag":1026,"props":5788,"children":5789},{"class":1028,"line":265},[5790,5794],{"type":993,"tag":1026,"props":5791,"children":5792},{"style":1047},[5793],{"type":998,"value":5411},{"type":993,"tag":1026,"props":5795,"children":5796},{"style":1067},[5797],{"type":998,"value":5416},{"type":993,"tag":1026,"props":5799,"children":5800},{"class":1028,"line":274},[5801,5805,5810],{"type":993,"tag":1026,"props":5802,"children":5803},{"style":1041},[5804],{"type":998,"value":1064},{"type":993,"tag":1026,"props":5806,"children":5807},{"style":1047},[5808],{"type":998,"value":5809}," kelvin",{"type":993,"tag":1026,"props":5811,"children":5812},{"style":1053},[5813],{"type":998,"value":1324},{"type":993,"tag":1026,"props":5815,"children":5816},{"class":1028,"line":284},[5817],{"type":993,"tag":1026,"props":5818,"children":5819},{"style":1122},[5820],{"type":998,"value":5821},"        \"\"\"Get temperature in Kelvin\"\"\"\n",{"type":993,"tag":1026,"props":5823,"children":5824},{"class":1028,"line":293},[5825,5829,5833,5837,5841],{"type":993,"tag":1026,"props":5826,"children":5827},{"style":1041},[5828],{"type":998,"value":1295},{"type":993,"tag":1026,"props":5830,"children":5831},{"style":1067},[5832],{"type":998,"value":1336},{"type":993,"tag":1026,"props":5834,"children":5835},{"style":1053},[5836],{"type":998,"value":5382},{"type":993,"tag":1026,"props":5838,"children":5839},{"style":1041},[5840],{"type":998,"value":5663},{"type":993,"tag":1026,"props":5842,"children":5843},{"style":1067},[5844],{"type":998,"value":5845}," 273.15\n",{"type":993,"tag":1026,"props":5847,"children":5848},{"class":1028,"line":302},[5849],{"type":993,"tag":1026,"props":5850,"children":5851},{"emptyLinePlaceholder":13},[5852],{"type":998,"value":1425},{"type":993,"tag":1026,"props":5854,"children":5855},{"class":1028,"line":311},[5856],{"type":993,"tag":1026,"props":5857,"children":5858},{"style":1032},[5859],{"type":998,"value":5860},"# Property-based access control\n",{"type":993,"tag":1026,"props":5862,"children":5863},{"class":1028,"line":320},[5864,5869,5873,5878,5883],{"type":993,"tag":1026,"props":5865,"children":5866},{"style":1053},[5867],{"type":998,"value":5868},"temp ",{"type":993,"tag":1026,"props":5870,"children":5871},{"style":1041},[5872],{"type":998,"value":1093},{"type":993,"tag":1026,"props":5874,"children":5875},{"style":1053},[5876],{"type":998,"value":5877}," Temperature(",{"type":993,"tag":1026,"props":5879,"children":5880},{"style":1067},[5881],{"type":998,"value":5882},"25",{"type":993,"tag":1026,"props":5884,"children":5885},{"style":1053},[5886],{"type":998,"value":1470},{"type":993,"tag":1026,"props":5888,"children":5889},{"class":1028,"line":329},[5890,5894,5898,5902,5907,5911,5916,5920,5924],{"type":993,"tag":1026,"props":5891,"children":5892},{"style":1067},[5893],{"type":998,"value":1478},{"type":993,"tag":1026,"props":5895,"children":5896},{"style":1053},[5897],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5899,"children":5900},{"style":1041},[5901],{"type":998,"value":2178},{"type":993,"tag":1026,"props":5903,"children":5904},{"style":1122},[5905],{"type":998,"value":5906},"\"Celsius: ",{"type":993,"tag":1026,"props":5908,"children":5909},{"style":1067},[5910],{"type":998,"value":1253},{"type":993,"tag":1026,"props":5912,"children":5913},{"style":1053},[5914],{"type":998,"value":5915},"temp.celsius",{"type":993,"tag":1026,"props":5917,"children":5918},{"style":1067},[5919],{"type":998,"value":1263},{"type":993,"tag":1026,"props":5921,"children":5922},{"style":1122},[5923],{"type":998,"value":2201},{"type":993,"tag":1026,"props":5925,"children":5926},{"style":1053},[5927],{"type":998,"value":1470},{"type":993,"tag":1026,"props":5929,"children":5930},{"class":1028,"line":338},[5931,5935,5939,5943,5948,5952,5957,5961,5965],{"type":993,"tag":1026,"props":5932,"children":5933},{"style":1067},[5934],{"type":998,"value":1478},{"type":993,"tag":1026,"props":5936,"children":5937},{"style":1053},[5938],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5940,"children":5941},{"style":1041},[5942],{"type":998,"value":2178},{"type":993,"tag":1026,"props":5944,"children":5945},{"style":1122},[5946],{"type":998,"value":5947},"\"Fahrenheit: ",{"type":993,"tag":1026,"props":5949,"children":5950},{"style":1067},[5951],{"type":998,"value":1253},{"type":993,"tag":1026,"props":5953,"children":5954},{"style":1053},[5955],{"type":998,"value":5956},"temp.fahrenheit",{"type":993,"tag":1026,"props":5958,"children":5959},{"style":1067},[5960],{"type":998,"value":1263},{"type":993,"tag":1026,"props":5962,"children":5963},{"style":1122},[5964],{"type":998,"value":2201},{"type":993,"tag":1026,"props":5966,"children":5967},{"style":1053},[5968],{"type":998,"value":1470},{"type":993,"tag":1026,"props":5970,"children":5971},{"class":1028,"line":347},[5972,5976,5980,5984,5989,5993,5998,6002,6006],{"type":993,"tag":1026,"props":5973,"children":5974},{"style":1067},[5975],{"type":998,"value":1478},{"type":993,"tag":1026,"props":5977,"children":5978},{"style":1053},[5979],{"type":998,"value":2173},{"type":993,"tag":1026,"props":5981,"children":5982},{"style":1041},[5983],{"type":998,"value":2178},{"type":993,"tag":1026,"props":5985,"children":5986},{"style":1122},[5987],{"type":998,"value":5988},"\"Kelvin: ",{"type":993,"tag":1026,"props":5990,"children":5991},{"style":1067},[5992],{"type":998,"value":1253},{"type":993,"tag":1026,"props":5994,"children":5995},{"style":1053},[5996],{"type":998,"value":5997},"temp.kelvin",{"type":993,"tag":1026,"props":5999,"children":6000},{"style":1067},[6001],{"type":998,"value":1263},{"type":993,"tag":1026,"props":6003,"children":6004},{"style":1122},[6005],{"type":998,"value":2201},{"type":993,"tag":1026,"props":6007,"children":6008},{"style":1053},[6009],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6011,"children":6012},{"class":1028,"line":356},[6013],{"type":993,"tag":1026,"props":6014,"children":6015},{"emptyLinePlaceholder":13},[6016],{"type":998,"value":1425},{"type":993,"tag":1026,"props":6018,"children":6019},{"class":1028,"line":365},[6020],{"type":993,"tag":1026,"props":6021,"children":6022},{"style":1032},[6023],{"type":998,"value":6024},"# Controlled modification\n",{"type":993,"tag":1026,"props":6026,"children":6027},{"class":1028,"line":374},[6028,6033,6037,6041],{"type":993,"tag":1026,"props":6029,"children":6030},{"style":1053},[6031],{"type":998,"value":6032},"temp.fahrenheit ",{"type":993,"tag":1026,"props":6034,"children":6035},{"style":1041},[6036],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6038,"children":6039},{"style":1067},[6040],{"type":998,"value":2867},{"type":993,"tag":1026,"props":6042,"children":6043},{"style":1032},[6044],{"type":998,"value":6045},"  # Sets internal celsius value\n",{"type":993,"tag":1026,"props":6047,"children":6048},{"class":1028,"line":384},[6049,6053,6057,6061,6066,6070,6074,6079,6083,6088],{"type":993,"tag":1026,"props":6050,"children":6051},{"style":1067},[6052],{"type":998,"value":1478},{"type":993,"tag":1026,"props":6054,"children":6055},{"style":1053},[6056],{"type":998,"value":2173},{"type":993,"tag":1026,"props":6058,"children":6059},{"style":1041},[6060],{"type":998,"value":2178},{"type":993,"tag":1026,"props":6062,"children":6063},{"style":1122},[6064],{"type":998,"value":6065},"\"After setting to 100°F: ",{"type":993,"tag":1026,"props":6067,"children":6068},{"style":1067},[6069],{"type":998,"value":1253},{"type":993,"tag":1026,"props":6071,"children":6072},{"style":1053},[6073],{"type":998,"value":5915},{"type":993,"tag":1026,"props":6075,"children":6076},{"style":1041},[6077],{"type":998,"value":6078},":.2f",{"type":993,"tag":1026,"props":6080,"children":6081},{"style":1067},[6082],{"type":998,"value":1263},{"type":993,"tag":1026,"props":6084,"children":6085},{"style":1122},[6086],{"type":998,"value":6087},"°C\"",{"type":993,"tag":1026,"props":6089,"children":6090},{"style":1053},[6091],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6093,"children":6094},{"class":1028,"line":393},[6095],{"type":993,"tag":1026,"props":6096,"children":6097},{"emptyLinePlaceholder":13},[6098],{"type":998,"value":1425},{"type":993,"tag":1026,"props":6100,"children":6101},{"class":1028,"line":402},[6102],{"type":993,"tag":1026,"props":6103,"children":6104},{"style":1032},[6105],{"type":998,"value":6106},"# Validation in action\n",{"type":993,"tag":1026,"props":6108,"children":6109},{"class":1028,"line":411},[6110,6115],{"type":993,"tag":1026,"props":6111,"children":6112},{"style":1041},[6113],{"type":998,"value":6114},"try",{"type":993,"tag":1026,"props":6116,"children":6117},{"style":1053},[6118],{"type":998,"value":1056},{"type":993,"tag":1026,"props":6120,"children":6121},{"class":1028,"line":420},[6122,6127,6131,6135,6140],{"type":993,"tag":1026,"props":6123,"children":6124},{"style":1053},[6125],{"type":998,"value":6126},"    temp.celsius ",{"type":993,"tag":1026,"props":6128,"children":6129},{"style":1041},[6130],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6132,"children":6133},{"style":1041},[6134],{"type":998,"value":5517},{"type":993,"tag":1026,"props":6136,"children":6137},{"style":1067},[6138],{"type":998,"value":6139},"300",{"type":993,"tag":1026,"props":6141,"children":6142},{"style":1032},[6143],{"type":998,"value":6144},"  # This will raise an error\n",{"type":993,"tag":1026,"props":6146,"children":6147},{"class":1028,"line":429},[6148,6153,6157,6162],{"type":993,"tag":1026,"props":6149,"children":6150},{"style":1041},[6151],{"type":998,"value":6152},"except",{"type":993,"tag":1026,"props":6154,"children":6155},{"style":1067},[6156],{"type":998,"value":5539},{"type":993,"tag":1026,"props":6158,"children":6159},{"style":1041},[6160],{"type":998,"value":6161}," as",{"type":993,"tag":1026,"props":6163,"children":6164},{"style":1053},[6165],{"type":998,"value":6166}," e:\n",{"type":993,"tag":1026,"props":6168,"children":6169},{"class":1028,"line":438},[6170,6174,6178,6182,6187,6191,6196,6200,6204],{"type":993,"tag":1026,"props":6171,"children":6172},{"style":1067},[6173],{"type":998,"value":4640},{"type":993,"tag":1026,"props":6175,"children":6176},{"style":1053},[6177],{"type":998,"value":2173},{"type":993,"tag":1026,"props":6179,"children":6180},{"style":1041},[6181],{"type":998,"value":2178},{"type":993,"tag":1026,"props":6183,"children":6184},{"style":1122},[6185],{"type":998,"value":6186},"\"Error: ",{"type":993,"tag":1026,"props":6188,"children":6189},{"style":1067},[6190],{"type":998,"value":1253},{"type":993,"tag":1026,"props":6192,"children":6193},{"style":1053},[6194],{"type":998,"value":6195},"e",{"type":993,"tag":1026,"props":6197,"children":6198},{"style":1067},[6199],{"type":998,"value":1263},{"type":993,"tag":1026,"props":6201,"children":6202},{"style":1122},[6203],{"type":998,"value":2201},{"type":993,"tag":1026,"props":6205,"children":6206},{"style":1053},[6207],{"type":998,"value":1470},{"type":993,"tag":1739,"props":6209,"children":6211},{"id":6210},"encapsulation-with-method-control",[6212],{"type":998,"value":6213},"Encapsulation with Method Control",{"type":993,"tag":1001,"props":6215,"children":6216},{},[6217],{"type":998,"value":6218},"Create controlled access to complex operations through carefully designed public methods.",{"type":993,"tag":1012,"props":6220,"children":6221},{},[6222],{"type":993,"tag":1016,"props":6223,"children":6225},{"className":1018,"code":6224,"language":6,"meta":8,"style":8},"class BankVault:\n    def __init__(self, initial_contents=None):\n        self.__contents = initial_contents or {}\n        self.__access_log = []\n        self.__is_locked = True\n        self.__master_key = \"secret_key_123\"\n    \n    def unlock(self, key):\n        \"\"\"Unlock the vault with the master key\"\"\"\n        if key == self.__master_key:\n            self.__is_locked = False\n            self.__log_access(\"Vault unlocked\")\n            return \"Vault unlocked successfully\"\n        else:\n            self.__log_access(\"Failed unlock attempt\")\n            return \"Invalid key\"\n    \n    def lock(self):\n        \"\"\"Lock the vault\"\"\"\n        self.__is_locked = True\n        self.__log_access(\"Vault locked\")\n        return \"Vault locked\"\n    \n    def store_item(self, item_id, item):\n        \"\"\"Store an item in the vault\"\"\"\n        if self.__is_locked:\n            return \"Vault is locked. Please unlock first.\"\n        \n        self.__contents[item_id] = item\n        self.__log_access(f\"Stored item: {item_id}\")\n        return f\"Item {item_id} stored successfully\"\n    \n    def retrieve_item(self, item_id):\n        \"\"\"Retrieve an item from the vault\"\"\"\n        if self.__is_locked:\n            return \"Vault is locked. Please unlock first.\"\n        \n        if item_id in self.__contents:\n            item = self.__contents.pop(item_id)\n            self.__log_access(f\"Retrieved item: {item_id}\")\n            return item\n        else:\n            self.__log_access(f\"Failed retrieval: {item_id}\")\n            return \"Item not found\"\n    \n    def get_inventory(self):\n        \"\"\"Get list of items without revealing contents\"\"\"\n        if self.__is_locked:\n            return \"Vault is locked\"\n        return list(self.__contents.keys())\n    \n    def __log_access(self, action):\n        \"\"\"Private method to log access attempts\"\"\"\n        import datetime\n        self.__access_log.append({\n            \"time\": datetime.datetime.now(),\n            \"action\": action\n        })\n    \n    def get_access_log(self, key):\n        \"\"\"Get access log with master key\"\"\"\n        if key == self.__master_key:\n            return self.__access_log[-5:]  # Last 5 entries\n        return \"Access denied\"\n\n# Controlled vault access\nvault = BankVault()\nprint(vault.store_item(\"gold_bar\", \"1kg Gold Bar\"))  # Fails - locked\nprint(vault.unlock(\"wrong_key\"))  # Fails - wrong key\nprint(vault.unlock(\"secret_key_123\"))  # Succeeds\nprint(vault.store_item(\"gold_bar\", \"1kg Gold Bar\"))  # Succeeds\nprint(vault.get_inventory())  # Shows item IDs\nprint(vault.lock())  # Lock vault\n",[6226],{"type":993,"tag":1022,"props":6227,"children":6228},{"__ignoreMap":8},[6229,6245,6274,6304,6325,6345,6366,6373,6390,6398,6423,6442,6463,6475,6487,6507,6519,6526,6542,6550,6569,6589,6601,6608,6625,6633,6649,6661,6668,6689,6730,6763,6770,6787,6795,6810,6821,6828,6853,6874,6914,6925,6936,6976,6988,6995,7011,7019,7034,7046,7071,7078,7095,7103,7114,7126,7137,7149,7156,7163,7179,7187,7210,7244,7256,7263,7271,7288,7324,7350,7375,7406,7423],{"type":993,"tag":1026,"props":6230,"children":6231},{"class":1028,"line":12},[6232,6236,6241],{"type":993,"tag":1026,"props":6233,"children":6234},{"style":1041},[6235],{"type":998,"value":1044},{"type":993,"tag":1026,"props":6237,"children":6238},{"style":1047},[6239],{"type":998,"value":6240}," BankVault",{"type":993,"tag":1026,"props":6242,"children":6243},{"style":1053},[6244],{"type":998,"value":1056},{"type":993,"tag":1026,"props":6246,"children":6247},{"class":1028,"line":27},[6248,6252,6256,6261,6265,6270],{"type":993,"tag":1026,"props":6249,"children":6250},{"style":1041},[6251],{"type":998,"value":1064},{"type":993,"tag":1026,"props":6253,"children":6254},{"style":1067},[6255],{"type":998,"value":1070},{"type":993,"tag":1026,"props":6257,"children":6258},{"style":1053},[6259],{"type":998,"value":6260},"(self, initial_contents",{"type":993,"tag":1026,"props":6262,"children":6263},{"style":1041},[6264],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6266,"children":6267},{"style":1067},[6268],{"type":998,"value":6269},"None",{"type":993,"tag":1026,"props":6271,"children":6272},{"style":1053},[6273],{"type":998,"value":2787},{"type":993,"tag":1026,"props":6275,"children":6276},{"class":1028,"line":36},[6277,6281,6286,6290,6295,6299],{"type":993,"tag":1026,"props":6278,"children":6279},{"style":1067},[6280],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6282,"children":6283},{"style":1053},[6284],{"type":998,"value":6285},".__contents ",{"type":993,"tag":1026,"props":6287,"children":6288},{"style":1041},[6289],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6291,"children":6292},{"style":1053},[6293],{"type":998,"value":6294}," initial_contents ",{"type":993,"tag":1026,"props":6296,"children":6297},{"style":1041},[6298],{"type":998,"value":4611},{"type":993,"tag":1026,"props":6300,"children":6301},{"style":1053},[6302],{"type":998,"value":6303}," {}\n",{"type":993,"tag":1026,"props":6305,"children":6306},{"class":1028,"line":45},[6307,6311,6316,6320],{"type":993,"tag":1026,"props":6308,"children":6309},{"style":1067},[6310],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6312,"children":6313},{"style":1053},[6314],{"type":998,"value":6315},".__access_log ",{"type":993,"tag":1026,"props":6317,"children":6318},{"style":1041},[6319],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6321,"children":6322},{"style":1053},[6323],{"type":998,"value":6324}," []\n",{"type":993,"tag":1026,"props":6326,"children":6327},{"class":1028,"line":54},[6328,6332,6337,6341],{"type":993,"tag":1026,"props":6329,"children":6330},{"style":1067},[6331],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6333,"children":6334},{"style":1053},[6335],{"type":998,"value":6336},".__is_locked ",{"type":993,"tag":1026,"props":6338,"children":6339},{"style":1041},[6340],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6342,"children":6343},{"style":1067},[6344],{"type":998,"value":1883},{"type":993,"tag":1026,"props":6346,"children":6347},{"class":1028,"line":63},[6348,6352,6357,6361],{"type":993,"tag":1026,"props":6349,"children":6350},{"style":1067},[6351],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6353,"children":6354},{"style":1053},[6355],{"type":998,"value":6356},".__master_key ",{"type":993,"tag":1026,"props":6358,"children":6359},{"style":1041},[6360],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6362,"children":6363},{"style":1122},[6364],{"type":998,"value":6365}," \"secret_key_123\"\n",{"type":993,"tag":1026,"props":6367,"children":6368},{"class":1028,"line":72},[6369],{"type":993,"tag":1026,"props":6370,"children":6371},{"style":1053},[6372],{"type":998,"value":1164},{"type":993,"tag":1026,"props":6374,"children":6375},{"class":1028,"line":81},[6376,6380,6385],{"type":993,"tag":1026,"props":6377,"children":6378},{"style":1041},[6379],{"type":998,"value":1064},{"type":993,"tag":1026,"props":6381,"children":6382},{"style":1047},[6383],{"type":998,"value":6384}," unlock",{"type":993,"tag":1026,"props":6386,"children":6387},{"style":1053},[6388],{"type":998,"value":6389},"(self, key):\n",{"type":993,"tag":1026,"props":6391,"children":6392},{"class":1028,"line":91},[6393],{"type":993,"tag":1026,"props":6394,"children":6395},{"style":1122},[6396],{"type":998,"value":6397},"        \"\"\"Unlock the vault with the master key\"\"\"\n",{"type":993,"tag":1026,"props":6399,"children":6400},{"class":1028,"line":100},[6401,6405,6410,6414,6418],{"type":993,"tag":1026,"props":6402,"children":6403},{"style":1041},[6404],{"type":998,"value":1189},{"type":993,"tag":1026,"props":6406,"children":6407},{"style":1053},[6408],{"type":998,"value":6409}," key ",{"type":993,"tag":1026,"props":6411,"children":6412},{"style":1041},[6413],{"type":998,"value":2915},{"type":993,"tag":1026,"props":6415,"children":6416},{"style":1067},[6417],{"type":998,"value":1336},{"type":993,"tag":1026,"props":6419,"children":6420},{"style":1053},[6421],{"type":998,"value":6422},".__master_key:\n",{"type":993,"tag":1026,"props":6424,"children":6425},{"class":1028,"line":109},[6426,6430,6434,6438],{"type":993,"tag":1026,"props":6427,"children":6428},{"style":1067},[6429],{"type":998,"value":1216},{"type":993,"tag":1026,"props":6431,"children":6432},{"style":1053},[6433],{"type":998,"value":6336},{"type":993,"tag":1026,"props":6435,"children":6436},{"style":1041},[6437],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6439,"children":6440},{"style":1067},[6441],{"type":998,"value":1963},{"type":993,"tag":1026,"props":6443,"children":6444},{"class":1028,"line":118},[6445,6449,6454,6459],{"type":993,"tag":1026,"props":6446,"children":6447},{"style":1067},[6448],{"type":998,"value":1216},{"type":993,"tag":1026,"props":6450,"children":6451},{"style":1053},[6452],{"type":998,"value":6453},".__log_access(",{"type":993,"tag":1026,"props":6455,"children":6456},{"style":1122},[6457],{"type":998,"value":6458},"\"Vault unlocked\"",{"type":993,"tag":1026,"props":6460,"children":6461},{"style":1053},[6462],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6464,"children":6465},{"class":1028,"line":127},[6466,6470],{"type":993,"tag":1026,"props":6467,"children":6468},{"style":1041},[6469],{"type":998,"value":1238},{"type":993,"tag":1026,"props":6471,"children":6472},{"style":1122},[6473],{"type":998,"value":6474}," \"Vault unlocked successfully\"\n",{"type":993,"tag":1026,"props":6476,"children":6477},{"class":1028,"line":136},[6478,6483],{"type":993,"tag":1026,"props":6479,"children":6480},{"style":1041},[6481],{"type":998,"value":6482},"        else",{"type":993,"tag":1026,"props":6484,"children":6485},{"style":1053},[6486],{"type":998,"value":1056},{"type":993,"tag":1026,"props":6488,"children":6489},{"class":1028,"line":146},[6490,6494,6498,6503],{"type":993,"tag":1026,"props":6491,"children":6492},{"style":1067},[6493],{"type":998,"value":1216},{"type":993,"tag":1026,"props":6495,"children":6496},{"style":1053},[6497],{"type":998,"value":6453},{"type":993,"tag":1026,"props":6499,"children":6500},{"style":1122},[6501],{"type":998,"value":6502},"\"Failed unlock attempt\"",{"type":993,"tag":1026,"props":6504,"children":6505},{"style":1053},[6506],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6508,"children":6509},{"class":1028,"line":155},[6510,6514],{"type":993,"tag":1026,"props":6511,"children":6512},{"style":1041},[6513],{"type":998,"value":1238},{"type":993,"tag":1026,"props":6515,"children":6516},{"style":1122},[6517],{"type":998,"value":6518}," \"Invalid key\"\n",{"type":993,"tag":1026,"props":6520,"children":6521},{"class":1028,"line":164},[6522],{"type":993,"tag":1026,"props":6523,"children":6524},{"style":1053},[6525],{"type":998,"value":1164},{"type":993,"tag":1026,"props":6527,"children":6528},{"class":1028,"line":173},[6529,6533,6538],{"type":993,"tag":1026,"props":6530,"children":6531},{"style":1041},[6532],{"type":998,"value":1064},{"type":993,"tag":1026,"props":6534,"children":6535},{"style":1047},[6536],{"type":998,"value":6537}," lock",{"type":993,"tag":1026,"props":6539,"children":6540},{"style":1053},[6541],{"type":998,"value":1324},{"type":993,"tag":1026,"props":6543,"children":6544},{"class":1028,"line":182},[6545],{"type":993,"tag":1026,"props":6546,"children":6547},{"style":1122},[6548],{"type":998,"value":6549},"        \"\"\"Lock the vault\"\"\"\n",{"type":993,"tag":1026,"props":6551,"children":6552},{"class":1028,"line":191},[6553,6557,6561,6565],{"type":993,"tag":1026,"props":6554,"children":6555},{"style":1067},[6556],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6558,"children":6559},{"style":1053},[6560],{"type":998,"value":6336},{"type":993,"tag":1026,"props":6562,"children":6563},{"style":1041},[6564],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6566,"children":6567},{"style":1067},[6568],{"type":998,"value":1883},{"type":993,"tag":1026,"props":6570,"children":6571},{"class":1028,"line":201},[6572,6576,6580,6585],{"type":993,"tag":1026,"props":6573,"children":6574},{"style":1067},[6575],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6577,"children":6578},{"style":1053},[6579],{"type":998,"value":6453},{"type":993,"tag":1026,"props":6581,"children":6582},{"style":1122},[6583],{"type":998,"value":6584},"\"Vault locked\"",{"type":993,"tag":1026,"props":6586,"children":6587},{"style":1053},[6588],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6590,"children":6591},{"class":1028,"line":210},[6592,6596],{"type":993,"tag":1026,"props":6593,"children":6594},{"style":1041},[6595],{"type":998,"value":1295},{"type":993,"tag":1026,"props":6597,"children":6598},{"style":1122},[6599],{"type":998,"value":6600}," \"Vault locked\"\n",{"type":993,"tag":1026,"props":6602,"children":6603},{"class":1028,"line":219},[6604],{"type":993,"tag":1026,"props":6605,"children":6606},{"style":1053},[6607],{"type":998,"value":1164},{"type":993,"tag":1026,"props":6609,"children":6610},{"class":1028,"line":228},[6611,6615,6620],{"type":993,"tag":1026,"props":6612,"children":6613},{"style":1041},[6614],{"type":998,"value":1064},{"type":993,"tag":1026,"props":6616,"children":6617},{"style":1047},[6618],{"type":998,"value":6619}," store_item",{"type":993,"tag":1026,"props":6621,"children":6622},{"style":1053},[6623],{"type":998,"value":6624},"(self, item_id, item):\n",{"type":993,"tag":1026,"props":6626,"children":6627},{"class":1028,"line":238},[6628],{"type":993,"tag":1026,"props":6629,"children":6630},{"style":1122},[6631],{"type":998,"value":6632},"        \"\"\"Store an item in the vault\"\"\"\n",{"type":993,"tag":1026,"props":6634,"children":6635},{"class":1028,"line":247},[6636,6640,6644],{"type":993,"tag":1026,"props":6637,"children":6638},{"style":1041},[6639],{"type":998,"value":1189},{"type":993,"tag":1026,"props":6641,"children":6642},{"style":1067},[6643],{"type":998,"value":1336},{"type":993,"tag":1026,"props":6645,"children":6646},{"style":1053},[6647],{"type":998,"value":6648},".__is_locked:\n",{"type":993,"tag":1026,"props":6650,"children":6651},{"class":1028,"line":256},[6652,6656],{"type":993,"tag":1026,"props":6653,"children":6654},{"style":1041},[6655],{"type":998,"value":1238},{"type":993,"tag":1026,"props":6657,"children":6658},{"style":1122},[6659],{"type":998,"value":6660}," \"Vault is locked. Please unlock first.\"\n",{"type":993,"tag":1026,"props":6662,"children":6663},{"class":1028,"line":265},[6664],{"type":993,"tag":1026,"props":6665,"children":6666},{"style":1053},[6667],{"type":998,"value":3559},{"type":993,"tag":1026,"props":6669,"children":6670},{"class":1028,"line":274},[6671,6675,6680,6684],{"type":993,"tag":1026,"props":6672,"children":6673},{"style":1067},[6674],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6676,"children":6677},{"style":1053},[6678],{"type":998,"value":6679},".__contents[item_id] ",{"type":993,"tag":1026,"props":6681,"children":6682},{"style":1041},[6683],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6685,"children":6686},{"style":1053},[6687],{"type":998,"value":6688}," item\n",{"type":993,"tag":1026,"props":6690,"children":6691},{"class":1028,"line":284},[6692,6696,6700,6704,6709,6713,6718,6722,6726],{"type":993,"tag":1026,"props":6693,"children":6694},{"style":1067},[6695],{"type":998,"value":1083},{"type":993,"tag":1026,"props":6697,"children":6698},{"style":1053},[6699],{"type":998,"value":6453},{"type":993,"tag":1026,"props":6701,"children":6702},{"style":1041},[6703],{"type":998,"value":2178},{"type":993,"tag":1026,"props":6705,"children":6706},{"style":1122},[6707],{"type":998,"value":6708},"\"Stored item: ",{"type":993,"tag":1026,"props":6710,"children":6711},{"style":1067},[6712],{"type":998,"value":1253},{"type":993,"tag":1026,"props":6714,"children":6715},{"style":1053},[6716],{"type":998,"value":6717},"item_id",{"type":993,"tag":1026,"props":6719,"children":6720},{"style":1067},[6721],{"type":998,"value":1263},{"type":993,"tag":1026,"props":6723,"children":6724},{"style":1122},[6725],{"type":998,"value":2201},{"type":993,"tag":1026,"props":6727,"children":6728},{"style":1053},[6729],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6731,"children":6732},{"class":1028,"line":293},[6733,6737,6741,6746,6750,6754,6758],{"type":993,"tag":1026,"props":6734,"children":6735},{"style":1041},[6736],{"type":998,"value":1295},{"type":993,"tag":1026,"props":6738,"children":6739},{"style":1041},[6740],{"type":998,"value":1243},{"type":993,"tag":1026,"props":6742,"children":6743},{"style":1122},[6744],{"type":998,"value":6745},"\"Item ",{"type":993,"tag":1026,"props":6747,"children":6748},{"style":1067},[6749],{"type":998,"value":1253},{"type":993,"tag":1026,"props":6751,"children":6752},{"style":1053},[6753],{"type":998,"value":6717},{"type":993,"tag":1026,"props":6755,"children":6756},{"style":1067},[6757],{"type":998,"value":1263},{"type":993,"tag":1026,"props":6759,"children":6760},{"style":1122},[6761],{"type":998,"value":6762}," stored successfully\"\n",{"type":993,"tag":1026,"props":6764,"children":6765},{"class":1028,"line":302},[6766],{"type":993,"tag":1026,"props":6767,"children":6768},{"style":1053},[6769],{"type":998,"value":1164},{"type":993,"tag":1026,"props":6771,"children":6772},{"class":1028,"line":311},[6773,6777,6782],{"type":993,"tag":1026,"props":6774,"children":6775},{"style":1041},[6776],{"type":998,"value":1064},{"type":993,"tag":1026,"props":6778,"children":6779},{"style":1047},[6780],{"type":998,"value":6781}," retrieve_item",{"type":993,"tag":1026,"props":6783,"children":6784},{"style":1053},[6785],{"type":998,"value":6786},"(self, item_id):\n",{"type":993,"tag":1026,"props":6788,"children":6789},{"class":1028,"line":320},[6790],{"type":993,"tag":1026,"props":6791,"children":6792},{"style":1122},[6793],{"type":998,"value":6794},"        \"\"\"Retrieve an item from the vault\"\"\"\n",{"type":993,"tag":1026,"props":6796,"children":6797},{"class":1028,"line":329},[6798,6802,6806],{"type":993,"tag":1026,"props":6799,"children":6800},{"style":1041},[6801],{"type":998,"value":1189},{"type":993,"tag":1026,"props":6803,"children":6804},{"style":1067},[6805],{"type":998,"value":1336},{"type":993,"tag":1026,"props":6807,"children":6808},{"style":1053},[6809],{"type":998,"value":6648},{"type":993,"tag":1026,"props":6811,"children":6812},{"class":1028,"line":338},[6813,6817],{"type":993,"tag":1026,"props":6814,"children":6815},{"style":1041},[6816],{"type":998,"value":1238},{"type":993,"tag":1026,"props":6818,"children":6819},{"style":1122},[6820],{"type":998,"value":6660},{"type":993,"tag":1026,"props":6822,"children":6823},{"class":1028,"line":347},[6824],{"type":993,"tag":1026,"props":6825,"children":6826},{"style":1053},[6827],{"type":998,"value":3559},{"type":993,"tag":1026,"props":6829,"children":6830},{"class":1028,"line":356},[6831,6835,6840,6844,6848],{"type":993,"tag":1026,"props":6832,"children":6833},{"style":1041},[6834],{"type":998,"value":1189},{"type":993,"tag":1026,"props":6836,"children":6837},{"style":1053},[6838],{"type":998,"value":6839}," item_id ",{"type":993,"tag":1026,"props":6841,"children":6842},{"style":1041},[6843],{"type":998,"value":4570},{"type":993,"tag":1026,"props":6845,"children":6846},{"style":1067},[6847],{"type":998,"value":1336},{"type":993,"tag":1026,"props":6849,"children":6850},{"style":1053},[6851],{"type":998,"value":6852},".__contents:\n",{"type":993,"tag":1026,"props":6854,"children":6855},{"class":1028,"line":365},[6856,6861,6865,6869],{"type":993,"tag":1026,"props":6857,"children":6858},{"style":1053},[6859],{"type":998,"value":6860},"            item ",{"type":993,"tag":1026,"props":6862,"children":6863},{"style":1041},[6864],{"type":998,"value":1093},{"type":993,"tag":1026,"props":6866,"children":6867},{"style":1067},[6868],{"type":998,"value":1336},{"type":993,"tag":1026,"props":6870,"children":6871},{"style":1053},[6872],{"type":998,"value":6873},".__contents.pop(item_id)\n",{"type":993,"tag":1026,"props":6875,"children":6876},{"class":1028,"line":374},[6877,6881,6885,6889,6894,6898,6902,6906,6910],{"type":993,"tag":1026,"props":6878,"children":6879},{"style":1067},[6880],{"type":998,"value":1216},{"type":993,"tag":1026,"props":6882,"children":6883},{"style":1053},[6884],{"type":998,"value":6453},{"type":993,"tag":1026,"props":6886,"children":6887},{"style":1041},[6888],{"type":998,"value":2178},{"type":993,"tag":1026,"props":6890,"children":6891},{"style":1122},[6892],{"type":998,"value":6893},"\"Retrieved item: ",{"type":993,"tag":1026,"props":6895,"children":6896},{"style":1067},[6897],{"type":998,"value":1253},{"type":993,"tag":1026,"props":6899,"children":6900},{"style":1053},[6901],{"type":998,"value":6717},{"type":993,"tag":1026,"props":6903,"children":6904},{"style":1067},[6905],{"type":998,"value":1263},{"type":993,"tag":1026,"props":6907,"children":6908},{"style":1122},[6909],{"type":998,"value":2201},{"type":993,"tag":1026,"props":6911,"children":6912},{"style":1053},[6913],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6915,"children":6916},{"class":1028,"line":384},[6917,6921],{"type":993,"tag":1026,"props":6918,"children":6919},{"style":1041},[6920],{"type":998,"value":1238},{"type":993,"tag":1026,"props":6922,"children":6923},{"style":1053},[6924],{"type":998,"value":6688},{"type":993,"tag":1026,"props":6926,"children":6927},{"class":1028,"line":393},[6928,6932],{"type":993,"tag":1026,"props":6929,"children":6930},{"style":1041},[6931],{"type":998,"value":6482},{"type":993,"tag":1026,"props":6933,"children":6934},{"style":1053},[6935],{"type":998,"value":1056},{"type":993,"tag":1026,"props":6937,"children":6938},{"class":1028,"line":402},[6939,6943,6947,6951,6956,6960,6964,6968,6972],{"type":993,"tag":1026,"props":6940,"children":6941},{"style":1067},[6942],{"type":998,"value":1216},{"type":993,"tag":1026,"props":6944,"children":6945},{"style":1053},[6946],{"type":998,"value":6453},{"type":993,"tag":1026,"props":6948,"children":6949},{"style":1041},[6950],{"type":998,"value":2178},{"type":993,"tag":1026,"props":6952,"children":6953},{"style":1122},[6954],{"type":998,"value":6955},"\"Failed retrieval: ",{"type":993,"tag":1026,"props":6957,"children":6958},{"style":1067},[6959],{"type":998,"value":1253},{"type":993,"tag":1026,"props":6961,"children":6962},{"style":1053},[6963],{"type":998,"value":6717},{"type":993,"tag":1026,"props":6965,"children":6966},{"style":1067},[6967],{"type":998,"value":1263},{"type":993,"tag":1026,"props":6969,"children":6970},{"style":1122},[6971],{"type":998,"value":2201},{"type":993,"tag":1026,"props":6973,"children":6974},{"style":1053},[6975],{"type":998,"value":1470},{"type":993,"tag":1026,"props":6977,"children":6978},{"class":1028,"line":411},[6979,6983],{"type":993,"tag":1026,"props":6980,"children":6981},{"style":1041},[6982],{"type":998,"value":1238},{"type":993,"tag":1026,"props":6984,"children":6985},{"style":1122},[6986],{"type":998,"value":6987}," \"Item not found\"\n",{"type":993,"tag":1026,"props":6989,"children":6990},{"class":1028,"line":420},[6991],{"type":993,"tag":1026,"props":6992,"children":6993},{"style":1053},[6994],{"type":998,"value":1164},{"type":993,"tag":1026,"props":6996,"children":6997},{"class":1028,"line":429},[6998,7002,7007],{"type":993,"tag":1026,"props":6999,"children":7000},{"style":1041},[7001],{"type":998,"value":1064},{"type":993,"tag":1026,"props":7003,"children":7004},{"style":1047},[7005],{"type":998,"value":7006}," get_inventory",{"type":993,"tag":1026,"props":7008,"children":7009},{"style":1053},[7010],{"type":998,"value":1324},{"type":993,"tag":1026,"props":7012,"children":7013},{"class":1028,"line":438},[7014],{"type":993,"tag":1026,"props":7015,"children":7016},{"style":1122},[7017],{"type":998,"value":7018},"        \"\"\"Get list of items without revealing contents\"\"\"\n",{"type":993,"tag":1026,"props":7020,"children":7021},{"class":1028,"line":447},[7022,7026,7030],{"type":993,"tag":1026,"props":7023,"children":7024},{"style":1041},[7025],{"type":998,"value":1189},{"type":993,"tag":1026,"props":7027,"children":7028},{"style":1067},[7029],{"type":998,"value":1336},{"type":993,"tag":1026,"props":7031,"children":7032},{"style":1053},[7033],{"type":998,"value":6648},{"type":993,"tag":1026,"props":7035,"children":7036},{"class":1028,"line":457},[7037,7041],{"type":993,"tag":1026,"props":7038,"children":7039},{"style":1041},[7040],{"type":998,"value":1238},{"type":993,"tag":1026,"props":7042,"children":7043},{"style":1122},[7044],{"type":998,"value":7045}," \"Vault is locked\"\n",{"type":993,"tag":1026,"props":7047,"children":7048},{"class":1028,"line":466},[7049,7053,7058,7062,7066],{"type":993,"tag":1026,"props":7050,"children":7051},{"style":1041},[7052],{"type":998,"value":1295},{"type":993,"tag":1026,"props":7054,"children":7055},{"style":1067},[7056],{"type":998,"value":7057}," list",{"type":993,"tag":1026,"props":7059,"children":7060},{"style":1053},[7061],{"type":998,"value":2173},{"type":993,"tag":1026,"props":7063,"children":7064},{"style":1067},[7065],{"type":998,"value":5631},{"type":993,"tag":1026,"props":7067,"children":7068},{"style":1053},[7069],{"type":998,"value":7070},".__contents.keys())\n",{"type":993,"tag":1026,"props":7072,"children":7073},{"class":1028,"line":475},[7074],{"type":993,"tag":1026,"props":7075,"children":7076},{"style":1053},[7077],{"type":998,"value":1164},{"type":993,"tag":1026,"props":7079,"children":7080},{"class":1028,"line":484},[7081,7085,7090],{"type":993,"tag":1026,"props":7082,"children":7083},{"style":1041},[7084],{"type":998,"value":1064},{"type":993,"tag":1026,"props":7086,"children":7087},{"style":1047},[7088],{"type":998,"value":7089}," __log_access",{"type":993,"tag":1026,"props":7091,"children":7092},{"style":1053},[7093],{"type":998,"value":7094},"(self, action):\n",{"type":993,"tag":1026,"props":7096,"children":7097},{"class":1028,"line":493},[7098],{"type":993,"tag":1026,"props":7099,"children":7100},{"style":1122},[7101],{"type":998,"value":7102},"        \"\"\"Private method to log access attempts\"\"\"\n",{"type":993,"tag":1026,"props":7104,"children":7105},{"class":1028,"line":502},[7106,7110],{"type":993,"tag":1026,"props":7107,"children":7108},{"style":1041},[7109],{"type":998,"value":3852},{"type":993,"tag":1026,"props":7111,"children":7112},{"style":1053},[7113],{"type":998,"value":3857},{"type":993,"tag":1026,"props":7115,"children":7116},{"class":1028,"line":511},[7117,7121],{"type":993,"tag":1026,"props":7118,"children":7119},{"style":1067},[7120],{"type":998,"value":1083},{"type":993,"tag":1026,"props":7122,"children":7123},{"style":1053},[7124],{"type":998,"value":7125},".__access_log.append({\n",{"type":993,"tag":1026,"props":7127,"children":7128},{"class":1028,"line":520},[7129,7133],{"type":993,"tag":1026,"props":7130,"children":7131},{"style":1122},[7132],{"type":998,"value":3877},{"type":993,"tag":1026,"props":7134,"children":7135},{"style":1053},[7136],{"type":998,"value":3882},{"type":993,"tag":1026,"props":7138,"children":7139},{"class":1028,"line":530},[7140,7144],{"type":993,"tag":1026,"props":7141,"children":7142},{"style":1122},[7143],{"type":998,"value":3890},{"type":993,"tag":1026,"props":7145,"children":7146},{"style":1053},[7147],{"type":998,"value":7148},": action\n",{"type":993,"tag":1026,"props":7150,"children":7151},{"class":1028,"line":539},[7152],{"type":993,"tag":1026,"props":7153,"children":7154},{"style":1053},[7155],{"type":998,"value":3903},{"type":993,"tag":1026,"props":7157,"children":7158},{"class":1028,"line":548},[7159],{"type":993,"tag":1026,"props":7160,"children":7161},{"style":1053},[7162],{"type":998,"value":1164},{"type":993,"tag":1026,"props":7164,"children":7165},{"class":1028,"line":557},[7166,7170,7175],{"type":993,"tag":1026,"props":7167,"children":7168},{"style":1041},[7169],{"type":998,"value":1064},{"type":993,"tag":1026,"props":7171,"children":7172},{"style":1047},[7173],{"type":998,"value":7174}," get_access_log",{"type":993,"tag":1026,"props":7176,"children":7177},{"style":1053},[7178],{"type":998,"value":6389},{"type":993,"tag":1026,"props":7180,"children":7181},{"class":1028,"line":566},[7182],{"type":993,"tag":1026,"props":7183,"children":7184},{"style":1122},[7185],{"type":998,"value":7186},"        \"\"\"Get access log with master key\"\"\"\n",{"type":993,"tag":1026,"props":7188,"children":7189},{"class":1028,"line":575},[7190,7194,7198,7202,7206],{"type":993,"tag":1026,"props":7191,"children":7192},{"style":1041},[7193],{"type":998,"value":1189},{"type":993,"tag":1026,"props":7195,"children":7196},{"style":1053},[7197],{"type":998,"value":6409},{"type":993,"tag":1026,"props":7199,"children":7200},{"style":1041},[7201],{"type":998,"value":2915},{"type":993,"tag":1026,"props":7203,"children":7204},{"style":1067},[7205],{"type":998,"value":1336},{"type":993,"tag":1026,"props":7207,"children":7208},{"style":1053},[7209],{"type":998,"value":6422},{"type":993,"tag":1026,"props":7211,"children":7212},{"class":1028,"line":584},[7213,7217,7221,7226,7230,7234,7239],{"type":993,"tag":1026,"props":7214,"children":7215},{"style":1041},[7216],{"type":998,"value":1238},{"type":993,"tag":1026,"props":7218,"children":7219},{"style":1067},[7220],{"type":998,"value":1336},{"type":993,"tag":1026,"props":7222,"children":7223},{"style":1053},[7224],{"type":998,"value":7225},".__access_log[",{"type":993,"tag":1026,"props":7227,"children":7228},{"style":1041},[7229],{"type":998,"value":3976},{"type":993,"tag":1026,"props":7231,"children":7232},{"style":1067},[7233],{"type":998,"value":3936},{"type":993,"tag":1026,"props":7235,"children":7236},{"style":1053},[7237],{"type":998,"value":7238},":]  ",{"type":993,"tag":1026,"props":7240,"children":7241},{"style":1032},[7242],{"type":998,"value":7243},"# Last 5 entries\n",{"type":993,"tag":1026,"props":7245,"children":7246},{"class":1028,"line":593},[7247,7251],{"type":993,"tag":1026,"props":7248,"children":7249},{"style":1041},[7250],{"type":998,"value":1295},{"type":993,"tag":1026,"props":7252,"children":7253},{"style":1122},[7254],{"type":998,"value":7255}," \"Access denied\"\n",{"type":993,"tag":1026,"props":7257,"children":7258},{"class":1028,"line":602},[7259],{"type":993,"tag":1026,"props":7260,"children":7261},{"emptyLinePlaceholder":13},[7262],{"type":998,"value":1425},{"type":993,"tag":1026,"props":7264,"children":7265},{"class":1028,"line":611},[7266],{"type":993,"tag":1026,"props":7267,"children":7268},{"style":1032},[7269],{"type":998,"value":7270},"# Controlled vault access\n",{"type":993,"tag":1026,"props":7272,"children":7273},{"class":1028,"line":621},[7274,7279,7283],{"type":993,"tag":1026,"props":7275,"children":7276},{"style":1053},[7277],{"type":998,"value":7278},"vault ",{"type":993,"tag":1026,"props":7280,"children":7281},{"style":1041},[7282],{"type":998,"value":1093},{"type":993,"tag":1026,"props":7284,"children":7285},{"style":1053},[7286],{"type":998,"value":7287}," BankVault()\n",{"type":993,"tag":1026,"props":7289,"children":7290},{"class":1028,"line":630},[7291,7295,7300,7305,7309,7314,7319],{"type":993,"tag":1026,"props":7292,"children":7293},{"style":1067},[7294],{"type":998,"value":1478},{"type":993,"tag":1026,"props":7296,"children":7297},{"style":1053},[7298],{"type":998,"value":7299},"(vault.store_item(",{"type":993,"tag":1026,"props":7301,"children":7302},{"style":1122},[7303],{"type":998,"value":7304},"\"gold_bar\"",{"type":993,"tag":1026,"props":7306,"children":7307},{"style":1053},[7308],{"type":998,"value":1460},{"type":993,"tag":1026,"props":7310,"children":7311},{"style":1122},[7312],{"type":998,"value":7313},"\"1kg Gold Bar\"",{"type":993,"tag":1026,"props":7315,"children":7316},{"style":1053},[7317],{"type":998,"value":7318},"))  ",{"type":993,"tag":1026,"props":7320,"children":7321},{"style":1032},[7322],{"type":998,"value":7323},"# Fails - locked\n",{"type":993,"tag":1026,"props":7325,"children":7326},{"class":1028,"line":639},[7327,7331,7336,7341,7345],{"type":993,"tag":1026,"props":7328,"children":7329},{"style":1067},[7330],{"type":998,"value":1478},{"type":993,"tag":1026,"props":7332,"children":7333},{"style":1053},[7334],{"type":998,"value":7335},"(vault.unlock(",{"type":993,"tag":1026,"props":7337,"children":7338},{"style":1122},[7339],{"type":998,"value":7340},"\"wrong_key\"",{"type":993,"tag":1026,"props":7342,"children":7343},{"style":1053},[7344],{"type":998,"value":7318},{"type":993,"tag":1026,"props":7346,"children":7347},{"style":1032},[7348],{"type":998,"value":7349},"# Fails - wrong key\n",{"type":993,"tag":1026,"props":7351,"children":7352},{"class":1028,"line":648},[7353,7357,7361,7366,7370],{"type":993,"tag":1026,"props":7354,"children":7355},{"style":1067},[7356],{"type":998,"value":1478},{"type":993,"tag":1026,"props":7358,"children":7359},{"style":1053},[7360],{"type":998,"value":7335},{"type":993,"tag":1026,"props":7362,"children":7363},{"style":1122},[7364],{"type":998,"value":7365},"\"secret_key_123\"",{"type":993,"tag":1026,"props":7367,"children":7368},{"style":1053},[7369],{"type":998,"value":7318},{"type":993,"tag":1026,"props":7371,"children":7372},{"style":1032},[7373],{"type":998,"value":7374},"# Succeeds\n",{"type":993,"tag":1026,"props":7376,"children":7377},{"class":1028,"line":657},[7378,7382,7386,7390,7394,7398,7402],{"type":993,"tag":1026,"props":7379,"children":7380},{"style":1067},[7381],{"type":998,"value":1478},{"type":993,"tag":1026,"props":7383,"children":7384},{"style":1053},[7385],{"type":998,"value":7299},{"type":993,"tag":1026,"props":7387,"children":7388},{"style":1122},[7389],{"type":998,"value":7304},{"type":993,"tag":1026,"props":7391,"children":7392},{"style":1053},[7393],{"type":998,"value":1460},{"type":993,"tag":1026,"props":7395,"children":7396},{"style":1122},[7397],{"type":998,"value":7313},{"type":993,"tag":1026,"props":7399,"children":7400},{"style":1053},[7401],{"type":998,"value":7318},{"type":993,"tag":1026,"props":7403,"children":7404},{"style":1032},[7405],{"type":998,"value":7374},{"type":993,"tag":1026,"props":7407,"children":7408},{"class":1028,"line":666},[7409,7413,7418],{"type":993,"tag":1026,"props":7410,"children":7411},{"style":1067},[7412],{"type":998,"value":1478},{"type":993,"tag":1026,"props":7414,"children":7415},{"style":1053},[7416],{"type":998,"value":7417},"(vault.get_inventory())  ",{"type":993,"tag":1026,"props":7419,"children":7420},{"style":1032},[7421],{"type":998,"value":7422},"# Shows item IDs\n",{"type":993,"tag":1026,"props":7424,"children":7425},{"class":1028,"line":675},[7426,7430,7435],{"type":993,"tag":1026,"props":7427,"children":7428},{"style":1067},[7429],{"type":998,"value":1478},{"type":993,"tag":1026,"props":7431,"children":7432},{"style":1053},[7433],{"type":998,"value":7434},"(vault.lock())  ",{"type":993,"tag":1026,"props":7436,"children":7437},{"style":1032},[7438],{"type":998,"value":7439},"# Lock vault\n",{"type":993,"tag":1532,"props":7441,"children":7443},{"id":7442},"best-practices-and-design-patterns",[7444],{"type":998,"value":7445},"🌟 Best Practices and Design Patterns",{"type":993,"tag":1739,"props":7447,"children":7449},{"id":7448},"visibility-guidelines",[7450],{"type":998,"value":7451},"Visibility Guidelines",{"type":993,"tag":1001,"props":7453,"children":7454},{},[7455],{"type":998,"value":7456},"Choose the appropriate visibility level based on the intended use and future maintainability.",{"type":993,"tag":1544,"props":7458,"children":7462},{"emoji":7459,"title":7460,"type":7461},"✅","Visibility Best Practices","success",[7463,7471,7494,7502,7525,7533,7556,7564],{"type":993,"tag":1001,"props":7464,"children":7465},{},[7466],{"type":993,"tag":1554,"props":7467,"children":7468},{},[7469],{"type":998,"value":7470},"Public Attributes:",{"type":993,"tag":1560,"props":7472,"children":7473},{},[7474,7479,7484,7489],{"type":993,"tag":1564,"props":7475,"children":7476},{},[7477],{"type":998,"value":7478},"Use for data that external code needs to access",{"type":993,"tag":1564,"props":7480,"children":7481},{},[7482],{"type":998,"value":7483},"Keep the interface stable once established",{"type":993,"tag":1564,"props":7485,"children":7486},{},[7487],{"type":998,"value":7488},"Document the expected data types and constraints",{"type":993,"tag":1564,"props":7490,"children":7491},{},[7492],{"type":998,"value":7493},"Consider using properties for validation",{"type":993,"tag":1001,"props":7495,"children":7496},{},[7497],{"type":993,"tag":1554,"props":7498,"children":7499},{},[7500],{"type":998,"value":7501},"Protected Attributes:",{"type":993,"tag":1560,"props":7503,"children":7504},{},[7505,7510,7515,7520],{"type":993,"tag":1564,"props":7506,"children":7507},{},[7508],{"type":998,"value":7509},"Use for internal implementation details",{"type":993,"tag":1564,"props":7511,"children":7512},{},[7513],{"type":998,"value":7514},"Mark clearly in documentation as \"internal use\"",{"type":993,"tag":1564,"props":7516,"children":7517},{},[7518],{"type":998,"value":7519},"Allow subclass access for inheritance patterns",{"type":993,"tag":1564,"props":7521,"children":7522},{},[7523],{"type":998,"value":7524},"Expect these to change between versions",{"type":993,"tag":1001,"props":7526,"children":7527},{},[7528],{"type":993,"tag":1554,"props":7529,"children":7530},{},[7531],{"type":998,"value":7532},"Private Attributes:",{"type":993,"tag":1560,"props":7534,"children":7535},{},[7536,7541,7546,7551],{"type":993,"tag":1564,"props":7537,"children":7538},{},[7539],{"type":998,"value":7540},"Use for truly sensitive or critical internal data",{"type":993,"tag":1564,"props":7542,"children":7543},{},[7544],{"type":998,"value":7545},"Protect against accidental external modification",{"type":993,"tag":1564,"props":7547,"children":7548},{},[7549],{"type":998,"value":7550},"Use for implementation details that should never be accessed",{"type":993,"tag":1564,"props":7552,"children":7553},{},[7554],{"type":998,"value":7555},"Remember that privacy is not absolute security",{"type":993,"tag":1001,"props":7557,"children":7558},{},[7559],{"type":993,"tag":1554,"props":7560,"children":7561},{},[7562],{"type":998,"value":7563},"General Guidelines:",{"type":993,"tag":1560,"props":7565,"children":7566},{},[7567,7572,7577,7582],{"type":993,"tag":1564,"props":7568,"children":7569},{},[7570],{"type":998,"value":7571},"Start with the most restrictive access and open up as needed",{"type":993,"tag":1564,"props":7573,"children":7574},{},[7575],{"type":998,"value":7576},"Use properties for validated access to private data",{"type":993,"tag":1564,"props":7578,"children":7579},{},[7580],{"type":998,"value":7581},"Document the purpose and expected usage patterns",{"type":993,"tag":1564,"props":7583,"children":7584},{},[7585],{"type":998,"value":7586},"Consider the long-term maintenance implications",{"type":993,"tag":1739,"props":7588,"children":7590},{"id":7589},"common-patterns",[7591],{"type":998,"value":7592},"Common Patterns",{"type":993,"tag":1001,"props":7594,"children":7595},{},[7596],{"type":998,"value":7597},"Apply these established patterns for effective encapsulation.",{"type":993,"tag":1012,"props":7599,"children":7600},{},[7601],{"type":993,"tag":1016,"props":7602,"children":7604},{"className":1018,"code":7603,"language":6,"meta":8,"style":8},"class ConfigManager:\n    def __init__(self, config_file):\n        self.__config_file = config_file        # Private - file path\n        self.__config_data = {}                 # Private - loaded data\n        self._cache_timeout = 300               # Protected - cache setting\n        self.auto_save = True                   # Public - user setting\n        self.__load_config()\n    \n    # Public interface\n    def get_setting(self, key, default=None):\n        \"\"\"Public method to get configuration values\"\"\"\n        return self.__config_data.get(key, default)\n    \n    def set_setting(self, key, value):\n        \"\"\"Public method to set configuration values\"\"\"\n        self.__config_data[key] = value\n        if self.auto_save:\n            self.__save_config()\n        return f\"Setting {key} updated\"\n    \n    def save(self):\n        \"\"\"Public method to manually save configuration\"\"\"\n        return self.__save_config()\n    \n    # Protected interface (for subclasses)\n    def _validate_setting(self, key, value):\n        \"\"\"Protected method for validation logic\"\"\"\n        # Subclasses can override this\n        return True\n    \n    def _get_cache_timeout(self):\n        \"\"\"Protected method to get cache timeout\"\"\"\n        return self._cache_timeout\n    \n    # Private implementation\n    def __load_config(self):\n        \"\"\"Private method to load configuration from file\"\"\"\n        # Simulate loading from file\n        self.__config_data = {\n            \"theme\": \"dark\",\n            \"language\": \"en\",\n            \"debug\": False\n        }\n    \n    def __save_config(self):\n        \"\"\"Private method to save configuration to file\"\"\"\n        # Simulate saving to file\n        return f\"Configuration saved to {self.__config_file}\"\n    \n    def __str__(self):\n        \"\"\"Public interface through special method\"\"\"\n        return f\"ConfigManager({len(self.__config_data)} settings)\"\n\n# Pattern usage\nconfig = ConfigManager(\"app.config\")\nprint(config.get_setting(\"theme\"))\nprint(config.set_setting(\"theme\", \"light\"))\nprint(config)\n\n# Protected access (discouraged but possible)\nprint(f\"Cache timeout: {config._get_cache_timeout()}\")\n\n# Private access (not recommended)\n# print(config.__config_data)  # AttributeError\n",[7605],{"type":993,"tag":1022,"props":7606,"children":7607},{"__ignoreMap":8},[7608,7624,7640,7666,7692,7718,7744,7756,7763,7771,7800,7808,7824,7831,7848,7856,7876,7892,7904,7938,7945,7961,7969,7984,7991,7999,8015,8023,8031,8042,8049,8065,8073,8089,8096,8104,8120,8128,8136,8156,8179,8200,8217,8225,8232,8248,8256,8264,8297,8304,8319,8327,8370,8377,8385,8411,8432,8461,8473,8480,8488,8529,8536,8544],{"type":993,"tag":1026,"props":7609,"children":7610},{"class":1028,"line":12},[7611,7615,7620],{"type":993,"tag":1026,"props":7612,"children":7613},{"style":1041},[7614],{"type":998,"value":1044},{"type":993,"tag":1026,"props":7616,"children":7617},{"style":1047},[7618],{"type":998,"value":7619}," ConfigManager",{"type":993,"tag":1026,"props":7621,"children":7622},{"style":1053},[7623],{"type":998,"value":1056},{"type":993,"tag":1026,"props":7625,"children":7626},{"class":1028,"line":27},[7627,7631,7635],{"type":993,"tag":1026,"props":7628,"children":7629},{"style":1041},[7630],{"type":998,"value":1064},{"type":993,"tag":1026,"props":7632,"children":7633},{"style":1067},[7634],{"type":998,"value":1070},{"type":993,"tag":1026,"props":7636,"children":7637},{"style":1053},[7638],{"type":998,"value":7639},"(self, config_file):\n",{"type":993,"tag":1026,"props":7641,"children":7642},{"class":1028,"line":36},[7643,7647,7652,7656,7661],{"type":993,"tag":1026,"props":7644,"children":7645},{"style":1067},[7646],{"type":998,"value":1083},{"type":993,"tag":1026,"props":7648,"children":7649},{"style":1053},[7650],{"type":998,"value":7651},".__config_file ",{"type":993,"tag":1026,"props":7653,"children":7654},{"style":1041},[7655],{"type":998,"value":1093},{"type":993,"tag":1026,"props":7657,"children":7658},{"style":1053},[7659],{"type":998,"value":7660}," config_file        ",{"type":993,"tag":1026,"props":7662,"children":7663},{"style":1032},[7664],{"type":998,"value":7665},"# Private - file path\n",{"type":993,"tag":1026,"props":7667,"children":7668},{"class":1028,"line":45},[7669,7673,7678,7682,7687],{"type":993,"tag":1026,"props":7670,"children":7671},{"style":1067},[7672],{"type":998,"value":1083},{"type":993,"tag":1026,"props":7674,"children":7675},{"style":1053},[7676],{"type":998,"value":7677},".__config_data ",{"type":993,"tag":1026,"props":7679,"children":7680},{"style":1041},[7681],{"type":998,"value":1093},{"type":993,"tag":1026,"props":7683,"children":7684},{"style":1053},[7685],{"type":998,"value":7686}," {}                 ",{"type":993,"tag":1026,"props":7688,"children":7689},{"style":1032},[7690],{"type":998,"value":7691},"# Private - loaded data\n",{"type":993,"tag":1026,"props":7693,"children":7694},{"class":1028,"line":54},[7695,7699,7704,7708,7713],{"type":993,"tag":1026,"props":7696,"children":7697},{"style":1067},[7698],{"type":998,"value":1083},{"type":993,"tag":1026,"props":7700,"children":7701},{"style":1053},[7702],{"type":998,"value":7703},"._cache_timeout ",{"type":993,"tag":1026,"props":7705,"children":7706},{"style":1041},[7707],{"type":998,"value":1093},{"type":993,"tag":1026,"props":7709,"children":7710},{"style":1067},[7711],{"type":998,"value":7712}," 300",{"type":993,"tag":1026,"props":7714,"children":7715},{"style":1032},[7716],{"type":998,"value":7717},"               # Protected - cache setting\n",{"type":993,"tag":1026,"props":7719,"children":7720},{"class":1028,"line":63},[7721,7725,7730,7734,7739],{"type":993,"tag":1026,"props":7722,"children":7723},{"style":1067},[7724],{"type":998,"value":1083},{"type":993,"tag":1026,"props":7726,"children":7727},{"style":1053},[7728],{"type":998,"value":7729},".auto_save ",{"type":993,"tag":1026,"props":7731,"children":7732},{"style":1041},[7733],{"type":998,"value":1093},{"type":993,"tag":1026,"props":7735,"children":7736},{"style":1067},[7737],{"type":998,"value":7738}," True",{"type":993,"tag":1026,"props":7740,"children":7741},{"style":1032},[7742],{"type":998,"value":7743},"                   # Public - user setting\n",{"type":993,"tag":1026,"props":7745,"children":7746},{"class":1028,"line":72},[7747,7751],{"type":993,"tag":1026,"props":7748,"children":7749},{"style":1067},[7750],{"type":998,"value":1083},{"type":993,"tag":1026,"props":7752,"children":7753},{"style":1053},[7754],{"type":998,"value":7755},".__load_config()\n",{"type":993,"tag":1026,"props":7757,"children":7758},{"class":1028,"line":81},[7759],{"type":993,"tag":1026,"props":7760,"children":7761},{"style":1053},[7762],{"type":998,"value":1164},{"type":993,"tag":1026,"props":7764,"children":7765},{"class":1028,"line":91},[7766],{"type":993,"tag":1026,"props":7767,"children":7768},{"style":1032},[7769],{"type":998,"value":7770},"    # Public interface\n",{"type":993,"tag":1026,"props":7772,"children":7773},{"class":1028,"line":100},[7774,7778,7783,7788,7792,7796],{"type":993,"tag":1026,"props":7775,"children":7776},{"style":1041},[7777],{"type":998,"value":1064},{"type":993,"tag":1026,"props":7779,"children":7780},{"style":1047},[7781],{"type":998,"value":7782}," get_setting",{"type":993,"tag":1026,"props":7784,"children":7785},{"style":1053},[7786],{"type":998,"value":7787},"(self, key, default",{"type":993,"tag":1026,"props":7789,"children":7790},{"style":1041},[7791],{"type":998,"value":1093},{"type":993,"tag":1026,"props":7793,"children":7794},{"style":1067},[7795],{"type":998,"value":6269},{"type":993,"tag":1026,"props":7797,"children":7798},{"style":1053},[7799],{"type":998,"value":2787},{"type":993,"tag":1026,"props":7801,"children":7802},{"class":1028,"line":109},[7803],{"type":993,"tag":1026,"props":7804,"children":7805},{"style":1122},[7806],{"type":998,"value":7807},"        \"\"\"Public method to get configuration values\"\"\"\n",{"type":993,"tag":1026,"props":7809,"children":7810},{"class":1028,"line":118},[7811,7815,7819],{"type":993,"tag":1026,"props":7812,"children":7813},{"style":1041},[7814],{"type":998,"value":1295},{"type":993,"tag":1026,"props":7816,"children":7817},{"style":1067},[7818],{"type":998,"value":1336},{"type":993,"tag":1026,"props":7820,"children":7821},{"style":1053},[7822],{"type":998,"value":7823},".__config_data.get(key, default)\n",{"type":993,"tag":1026,"props":7825,"children":7826},{"class":1028,"line":127},[7827],{"type":993,"tag":1026,"props":7828,"children":7829},{"style":1053},[7830],{"type":998,"value":1164},{"type":993,"tag":1026,"props":7832,"children":7833},{"class":1028,"line":136},[7834,7838,7843],{"type":993,"tag":1026,"props":7835,"children":7836},{"style":1041},[7837],{"type":998,"value":1064},{"type":993,"tag":1026,"props":7839,"children":7840},{"style":1047},[7841],{"type":998,"value":7842}," set_setting",{"type":993,"tag":1026,"props":7844,"children":7845},{"style":1053},[7846],{"type":998,"value":7847},"(self, key, value):\n",{"type":993,"tag":1026,"props":7849,"children":7850},{"class":1028,"line":146},[7851],{"type":993,"tag":1026,"props":7852,"children":7853},{"style":1122},[7854],{"type":998,"value":7855},"        \"\"\"Public method to set configuration values\"\"\"\n",{"type":993,"tag":1026,"props":7857,"children":7858},{"class":1028,"line":155},[7859,7863,7868,7872],{"type":993,"tag":1026,"props":7860,"children":7861},{"style":1067},[7862],{"type":998,"value":1083},{"type":993,"tag":1026,"props":7864,"children":7865},{"style":1053},[7866],{"type":998,"value":7867},".__config_data[key] ",{"type":993,"tag":1026,"props":7869,"children":7870},{"style":1041},[7871],{"type":998,"value":1093},{"type":993,"tag":1026,"props":7873,"children":7874},{"style":1053},[7875],{"type":998,"value":5572},{"type":993,"tag":1026,"props":7877,"children":7878},{"class":1028,"line":164},[7879,7883,7887],{"type":993,"tag":1026,"props":7880,"children":7881},{"style":1041},[7882],{"type":998,"value":1189},{"type":993,"tag":1026,"props":7884,"children":7885},{"style":1067},[7886],{"type":998,"value":1336},{"type":993,"tag":1026,"props":7888,"children":7889},{"style":1053},[7890],{"type":998,"value":7891},".auto_save:\n",{"type":993,"tag":1026,"props":7893,"children":7894},{"class":1028,"line":173},[7895,7899],{"type":993,"tag":1026,"props":7896,"children":7897},{"style":1067},[7898],{"type":998,"value":1216},{"type":993,"tag":1026,"props":7900,"children":7901},{"style":1053},[7902],{"type":998,"value":7903},".__save_config()\n",{"type":993,"tag":1026,"props":7905,"children":7906},{"class":1028,"line":182},[7907,7911,7915,7920,7924,7929,7933],{"type":993,"tag":1026,"props":7908,"children":7909},{"style":1041},[7910],{"type":998,"value":1295},{"type":993,"tag":1026,"props":7912,"children":7913},{"style":1041},[7914],{"type":998,"value":1243},{"type":993,"tag":1026,"props":7916,"children":7917},{"style":1122},[7918],{"type":998,"value":7919},"\"Setting ",{"type":993,"tag":1026,"props":7921,"children":7922},{"style":1067},[7923],{"type":998,"value":1253},{"type":993,"tag":1026,"props":7925,"children":7926},{"style":1053},[7927],{"type":998,"value":7928},"key",{"type":993,"tag":1026,"props":7930,"children":7931},{"style":1067},[7932],{"type":998,"value":1263},{"type":993,"tag":1026,"props":7934,"children":7935},{"style":1122},[7936],{"type":998,"value":7937}," updated\"\n",{"type":993,"tag":1026,"props":7939,"children":7940},{"class":1028,"line":191},[7941],{"type":993,"tag":1026,"props":7942,"children":7943},{"style":1053},[7944],{"type":998,"value":1164},{"type":993,"tag":1026,"props":7946,"children":7947},{"class":1028,"line":201},[7948,7952,7957],{"type":993,"tag":1026,"props":7949,"children":7950},{"style":1041},[7951],{"type":998,"value":1064},{"type":993,"tag":1026,"props":7953,"children":7954},{"style":1047},[7955],{"type":998,"value":7956}," save",{"type":993,"tag":1026,"props":7958,"children":7959},{"style":1053},[7960],{"type":998,"value":1324},{"type":993,"tag":1026,"props":7962,"children":7963},{"class":1028,"line":210},[7964],{"type":993,"tag":1026,"props":7965,"children":7966},{"style":1122},[7967],{"type":998,"value":7968},"        \"\"\"Public method to manually save configuration\"\"\"\n",{"type":993,"tag":1026,"props":7970,"children":7971},{"class":1028,"line":219},[7972,7976,7980],{"type":993,"tag":1026,"props":7973,"children":7974},{"style":1041},[7975],{"type":998,"value":1295},{"type":993,"tag":1026,"props":7977,"children":7978},{"style":1067},[7979],{"type":998,"value":1336},{"type":993,"tag":1026,"props":7981,"children":7982},{"style":1053},[7983],{"type":998,"value":7903},{"type":993,"tag":1026,"props":7985,"children":7986},{"class":1028,"line":228},[7987],{"type":993,"tag":1026,"props":7988,"children":7989},{"style":1053},[7990],{"type":998,"value":1164},{"type":993,"tag":1026,"props":7992,"children":7993},{"class":1028,"line":238},[7994],{"type":993,"tag":1026,"props":7995,"children":7996},{"style":1032},[7997],{"type":998,"value":7998},"    # Protected interface (for subclasses)\n",{"type":993,"tag":1026,"props":8000,"children":8001},{"class":1028,"line":247},[8002,8006,8011],{"type":993,"tag":1026,"props":8003,"children":8004},{"style":1041},[8005],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8007,"children":8008},{"style":1047},[8009],{"type":998,"value":8010}," _validate_setting",{"type":993,"tag":1026,"props":8012,"children":8013},{"style":1053},[8014],{"type":998,"value":7847},{"type":993,"tag":1026,"props":8016,"children":8017},{"class":1028,"line":256},[8018],{"type":993,"tag":1026,"props":8019,"children":8020},{"style":1122},[8021],{"type":998,"value":8022},"        \"\"\"Protected method for validation logic\"\"\"\n",{"type":993,"tag":1026,"props":8024,"children":8025},{"class":1028,"line":265},[8026],{"type":993,"tag":1026,"props":8027,"children":8028},{"style":1032},[8029],{"type":998,"value":8030},"        # Subclasses can override this\n",{"type":993,"tag":1026,"props":8032,"children":8033},{"class":1028,"line":274},[8034,8038],{"type":993,"tag":1026,"props":8035,"children":8036},{"style":1041},[8037],{"type":998,"value":1295},{"type":993,"tag":1026,"props":8039,"children":8040},{"style":1067},[8041],{"type":998,"value":1883},{"type":993,"tag":1026,"props":8043,"children":8044},{"class":1028,"line":284},[8045],{"type":993,"tag":1026,"props":8046,"children":8047},{"style":1053},[8048],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8050,"children":8051},{"class":1028,"line":293},[8052,8056,8061],{"type":993,"tag":1026,"props":8053,"children":8054},{"style":1041},[8055],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8057,"children":8058},{"style":1047},[8059],{"type":998,"value":8060}," _get_cache_timeout",{"type":993,"tag":1026,"props":8062,"children":8063},{"style":1053},[8064],{"type":998,"value":1324},{"type":993,"tag":1026,"props":8066,"children":8067},{"class":1028,"line":302},[8068],{"type":993,"tag":1026,"props":8069,"children":8070},{"style":1122},[8071],{"type":998,"value":8072},"        \"\"\"Protected method to get cache timeout\"\"\"\n",{"type":993,"tag":1026,"props":8074,"children":8075},{"class":1028,"line":311},[8076,8080,8084],{"type":993,"tag":1026,"props":8077,"children":8078},{"style":1041},[8079],{"type":998,"value":1295},{"type":993,"tag":1026,"props":8081,"children":8082},{"style":1067},[8083],{"type":998,"value":1336},{"type":993,"tag":1026,"props":8085,"children":8086},{"style":1053},[8087],{"type":998,"value":8088},"._cache_timeout\n",{"type":993,"tag":1026,"props":8090,"children":8091},{"class":1028,"line":320},[8092],{"type":993,"tag":1026,"props":8093,"children":8094},{"style":1053},[8095],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8097,"children":8098},{"class":1028,"line":329},[8099],{"type":993,"tag":1026,"props":8100,"children":8101},{"style":1032},[8102],{"type":998,"value":8103},"    # Private implementation\n",{"type":993,"tag":1026,"props":8105,"children":8106},{"class":1028,"line":338},[8107,8111,8116],{"type":993,"tag":1026,"props":8108,"children":8109},{"style":1041},[8110],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8112,"children":8113},{"style":1047},[8114],{"type":998,"value":8115}," __load_config",{"type":993,"tag":1026,"props":8117,"children":8118},{"style":1053},[8119],{"type":998,"value":1324},{"type":993,"tag":1026,"props":8121,"children":8122},{"class":1028,"line":347},[8123],{"type":993,"tag":1026,"props":8124,"children":8125},{"style":1122},[8126],{"type":998,"value":8127},"        \"\"\"Private method to load configuration from file\"\"\"\n",{"type":993,"tag":1026,"props":8129,"children":8130},{"class":1028,"line":356},[8131],{"type":993,"tag":1026,"props":8132,"children":8133},{"style":1032},[8134],{"type":998,"value":8135},"        # Simulate loading from file\n",{"type":993,"tag":1026,"props":8137,"children":8138},{"class":1028,"line":365},[8139,8143,8147,8151],{"type":993,"tag":1026,"props":8140,"children":8141},{"style":1067},[8142],{"type":998,"value":1083},{"type":993,"tag":1026,"props":8144,"children":8145},{"style":1053},[8146],{"type":998,"value":7677},{"type":993,"tag":1026,"props":8148,"children":8149},{"style":1041},[8150],{"type":998,"value":1093},{"type":993,"tag":1026,"props":8152,"children":8153},{"style":1053},[8154],{"type":998,"value":8155}," {\n",{"type":993,"tag":1026,"props":8157,"children":8158},{"class":1028,"line":374},[8159,8164,8169,8174],{"type":993,"tag":1026,"props":8160,"children":8161},{"style":1122},[8162],{"type":998,"value":8163},"            \"theme\"",{"type":993,"tag":1026,"props":8165,"children":8166},{"style":1053},[8167],{"type":998,"value":8168},": ",{"type":993,"tag":1026,"props":8170,"children":8171},{"style":1122},[8172],{"type":998,"value":8173},"\"dark\"",{"type":993,"tag":1026,"props":8175,"children":8176},{"style":1053},[8177],{"type":998,"value":8178},",\n",{"type":993,"tag":1026,"props":8180,"children":8181},{"class":1028,"line":384},[8182,8187,8191,8196],{"type":993,"tag":1026,"props":8183,"children":8184},{"style":1122},[8185],{"type":998,"value":8186},"            \"language\"",{"type":993,"tag":1026,"props":8188,"children":8189},{"style":1053},[8190],{"type":998,"value":8168},{"type":993,"tag":1026,"props":8192,"children":8193},{"style":1122},[8194],{"type":998,"value":8195},"\"en\"",{"type":993,"tag":1026,"props":8197,"children":8198},{"style":1053},[8199],{"type":998,"value":8178},{"type":993,"tag":1026,"props":8201,"children":8202},{"class":1028,"line":393},[8203,8208,8212],{"type":993,"tag":1026,"props":8204,"children":8205},{"style":1122},[8206],{"type":998,"value":8207},"            \"debug\"",{"type":993,"tag":1026,"props":8209,"children":8210},{"style":1053},[8211],{"type":998,"value":8168},{"type":993,"tag":1026,"props":8213,"children":8214},{"style":1067},[8215],{"type":998,"value":8216},"False\n",{"type":993,"tag":1026,"props":8218,"children":8219},{"class":1028,"line":402},[8220],{"type":993,"tag":1026,"props":8221,"children":8222},{"style":1053},[8223],{"type":998,"value":8224},"        }\n",{"type":993,"tag":1026,"props":8226,"children":8227},{"class":1028,"line":411},[8228],{"type":993,"tag":1026,"props":8229,"children":8230},{"style":1053},[8231],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8233,"children":8234},{"class":1028,"line":420},[8235,8239,8244],{"type":993,"tag":1026,"props":8236,"children":8237},{"style":1041},[8238],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8240,"children":8241},{"style":1047},[8242],{"type":998,"value":8243}," __save_config",{"type":993,"tag":1026,"props":8245,"children":8246},{"style":1053},[8247],{"type":998,"value":1324},{"type":993,"tag":1026,"props":8249,"children":8250},{"class":1028,"line":429},[8251],{"type":993,"tag":1026,"props":8252,"children":8253},{"style":1122},[8254],{"type":998,"value":8255},"        \"\"\"Private method to save configuration to file\"\"\"\n",{"type":993,"tag":1026,"props":8257,"children":8258},{"class":1028,"line":438},[8259],{"type":993,"tag":1026,"props":8260,"children":8261},{"style":1032},[8262],{"type":998,"value":8263},"        # Simulate saving to file\n",{"type":993,"tag":1026,"props":8265,"children":8266},{"class":1028,"line":447},[8267,8271,8275,8280,8284,8289,8293],{"type":993,"tag":1026,"props":8268,"children":8269},{"style":1041},[8270],{"type":998,"value":1295},{"type":993,"tag":1026,"props":8272,"children":8273},{"style":1041},[8274],{"type":998,"value":1243},{"type":993,"tag":1026,"props":8276,"children":8277},{"style":1122},[8278],{"type":998,"value":8279},"\"Configuration saved to ",{"type":993,"tag":1026,"props":8281,"children":8282},{"style":1067},[8283],{"type":998,"value":1273},{"type":993,"tag":1026,"props":8285,"children":8286},{"style":1053},[8287],{"type":998,"value":8288},".__config_file",{"type":993,"tag":1026,"props":8290,"children":8291},{"style":1067},[8292],{"type":998,"value":1263},{"type":993,"tag":1026,"props":8294,"children":8295},{"style":1122},[8296],{"type":998,"value":1287},{"type":993,"tag":1026,"props":8298,"children":8299},{"class":1028,"line":457},[8300],{"type":993,"tag":1026,"props":8301,"children":8302},{"style":1053},[8303],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8305,"children":8306},{"class":1028,"line":466},[8307,8311,8315],{"type":993,"tag":1026,"props":8308,"children":8309},{"style":1041},[8310],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8312,"children":8313},{"style":1067},[8314],{"type":998,"value":4891},{"type":993,"tag":1026,"props":8316,"children":8317},{"style":1053},[8318],{"type":998,"value":1324},{"type":993,"tag":1026,"props":8320,"children":8321},{"class":1028,"line":475},[8322],{"type":993,"tag":1026,"props":8323,"children":8324},{"style":1122},[8325],{"type":998,"value":8326},"        \"\"\"Public interface through special method\"\"\"\n",{"type":993,"tag":1026,"props":8328,"children":8329},{"class":1028,"line":484},[8330,8334,8338,8343,8348,8352,8356,8361,8365],{"type":993,"tag":1026,"props":8331,"children":8332},{"style":1041},[8333],{"type":998,"value":1295},{"type":993,"tag":1026,"props":8335,"children":8336},{"style":1041},[8337],{"type":998,"value":1243},{"type":993,"tag":1026,"props":8339,"children":8340},{"style":1122},[8341],{"type":998,"value":8342},"\"ConfigManager(",{"type":993,"tag":1026,"props":8344,"children":8345},{"style":1067},[8346],{"type":998,"value":8347},"{len",{"type":993,"tag":1026,"props":8349,"children":8350},{"style":1053},[8351],{"type":998,"value":2173},{"type":993,"tag":1026,"props":8353,"children":8354},{"style":1067},[8355],{"type":998,"value":5631},{"type":993,"tag":1026,"props":8357,"children":8358},{"style":1053},[8359],{"type":998,"value":8360},".__config_data)",{"type":993,"tag":1026,"props":8362,"children":8363},{"style":1067},[8364],{"type":998,"value":1263},{"type":993,"tag":1026,"props":8366,"children":8367},{"style":1122},[8368],{"type":998,"value":8369}," settings)\"\n",{"type":993,"tag":1026,"props":8371,"children":8372},{"class":1028,"line":493},[8373],{"type":993,"tag":1026,"props":8374,"children":8375},{"emptyLinePlaceholder":13},[8376],{"type":998,"value":1425},{"type":993,"tag":1026,"props":8378,"children":8379},{"class":1028,"line":502},[8380],{"type":993,"tag":1026,"props":8381,"children":8382},{"style":1032},[8383],{"type":998,"value":8384},"# Pattern usage\n",{"type":993,"tag":1026,"props":8386,"children":8387},{"class":1028,"line":511},[8388,8393,8397,8402,8407],{"type":993,"tag":1026,"props":8389,"children":8390},{"style":1053},[8391],{"type":998,"value":8392},"config ",{"type":993,"tag":1026,"props":8394,"children":8395},{"style":1041},[8396],{"type":998,"value":1093},{"type":993,"tag":1026,"props":8398,"children":8399},{"style":1053},[8400],{"type":998,"value":8401}," ConfigManager(",{"type":993,"tag":1026,"props":8403,"children":8404},{"style":1122},[8405],{"type":998,"value":8406},"\"app.config\"",{"type":993,"tag":1026,"props":8408,"children":8409},{"style":1053},[8410],{"type":998,"value":1470},{"type":993,"tag":1026,"props":8412,"children":8413},{"class":1028,"line":520},[8414,8418,8423,8428],{"type":993,"tag":1026,"props":8415,"children":8416},{"style":1067},[8417],{"type":998,"value":1478},{"type":993,"tag":1026,"props":8419,"children":8420},{"style":1053},[8421],{"type":998,"value":8422},"(config.get_setting(",{"type":993,"tag":1026,"props":8424,"children":8425},{"style":1122},[8426],{"type":998,"value":8427},"\"theme\"",{"type":993,"tag":1026,"props":8429,"children":8430},{"style":1053},[8431],{"type":998,"value":4078},{"type":993,"tag":1026,"props":8433,"children":8434},{"class":1028,"line":530},[8435,8439,8444,8448,8452,8457],{"type":993,"tag":1026,"props":8436,"children":8437},{"style":1067},[8438],{"type":998,"value":1478},{"type":993,"tag":1026,"props":8440,"children":8441},{"style":1053},[8442],{"type":998,"value":8443},"(config.set_setting(",{"type":993,"tag":1026,"props":8445,"children":8446},{"style":1122},[8447],{"type":998,"value":8427},{"type":993,"tag":1026,"props":8449,"children":8450},{"style":1053},[8451],{"type":998,"value":1460},{"type":993,"tag":1026,"props":8453,"children":8454},{"style":1122},[8455],{"type":998,"value":8456},"\"light\"",{"type":993,"tag":1026,"props":8458,"children":8459},{"style":1053},[8460],{"type":998,"value":4078},{"type":993,"tag":1026,"props":8462,"children":8463},{"class":1028,"line":539},[8464,8468],{"type":993,"tag":1026,"props":8465,"children":8466},{"style":1067},[8467],{"type":998,"value":1478},{"type":993,"tag":1026,"props":8469,"children":8470},{"style":1053},[8471],{"type":998,"value":8472},"(config)\n",{"type":993,"tag":1026,"props":8474,"children":8475},{"class":1028,"line":548},[8476],{"type":993,"tag":1026,"props":8477,"children":8478},{"emptyLinePlaceholder":13},[8479],{"type":998,"value":1425},{"type":993,"tag":1026,"props":8481,"children":8482},{"class":1028,"line":557},[8483],{"type":993,"tag":1026,"props":8484,"children":8485},{"style":1032},[8486],{"type":998,"value":8487},"# Protected access (discouraged but possible)\n",{"type":993,"tag":1026,"props":8489,"children":8490},{"class":1028,"line":566},[8491,8495,8499,8503,8508,8512,8517,8521,8525],{"type":993,"tag":1026,"props":8492,"children":8493},{"style":1067},[8494],{"type":998,"value":1478},{"type":993,"tag":1026,"props":8496,"children":8497},{"style":1053},[8498],{"type":998,"value":2173},{"type":993,"tag":1026,"props":8500,"children":8501},{"style":1041},[8502],{"type":998,"value":2178},{"type":993,"tag":1026,"props":8504,"children":8505},{"style":1122},[8506],{"type":998,"value":8507},"\"Cache timeout: ",{"type":993,"tag":1026,"props":8509,"children":8510},{"style":1067},[8511],{"type":998,"value":1253},{"type":993,"tag":1026,"props":8513,"children":8514},{"style":1053},[8515],{"type":998,"value":8516},"config._get_cache_timeout()",{"type":993,"tag":1026,"props":8518,"children":8519},{"style":1067},[8520],{"type":998,"value":1263},{"type":993,"tag":1026,"props":8522,"children":8523},{"style":1122},[8524],{"type":998,"value":2201},{"type":993,"tag":1026,"props":8526,"children":8527},{"style":1053},[8528],{"type":998,"value":1470},{"type":993,"tag":1026,"props":8530,"children":8531},{"class":1028,"line":575},[8532],{"type":993,"tag":1026,"props":8533,"children":8534},{"emptyLinePlaceholder":13},[8535],{"type":998,"value":1425},{"type":993,"tag":1026,"props":8537,"children":8538},{"class":1028,"line":584},[8539],{"type":993,"tag":1026,"props":8540,"children":8541},{"style":1032},[8542],{"type":998,"value":8543},"# Private access (not recommended)\n",{"type":993,"tag":1026,"props":8545,"children":8546},{"class":1028,"line":593},[8547],{"type":993,"tag":1026,"props":8548,"children":8549},{"style":1032},[8550],{"type":998,"value":8551},"# print(config.__config_data)  # AttributeError\n",{"type":993,"tag":8553,"props":8554,"children":8556},"content-exercise",{":widget-view":8555,"category":6,"id":720},"true",[],{"type":993,"tag":8558,"props":8559,"children":8562},"exercise",{"hint":8560,"prompt":8561},"Public: account_holder_name. Protected: _account_type. Private: __balance, __pin. Use methods to safely access private attributes","Create a simple BankAccount class that demonstrates variable visibility. Use public attributes for account holder name, protected attributes for account type, and private attributes for balance and PIN. Add methods to access and modify these attributes appropriately.",[8563],{"type":993,"tag":1016,"props":8564,"children":8566},{"className":1018,"code":8565,"language":6,"meta":8,"style":8},"class BankAccount:\n    def __init__(self, account_holder, account_type, initial_balance, pin):\n        # TODO: Set public attribute for account holder name\n        # TODO: Set protected attribute for account type\n        # TODO: Set private attributes for balance and PIN\n        pass\n    \n    def deposit(self, amount):\n        # TODO: Add money to balance\n        pass\n    \n    def withdraw(self, amount, pin):\n        # TODO: Remove money if PIN is correct and balance sufficient\n        pass\n    \n    def get_balance(self, pin):\n        # TODO: Return balance if PIN is correct\n        pass\n    \n    def change_pin(self, old_pin, new_pin):\n        # TODO: Change PIN if old PIN is correct\n        pass\n\n# TODO: Test your bank account\naccount = BankAccount(\"Alice\", \"savings\", 1000, 1234)\nprint(f\"Account holder: {account.account_holder_name}\")  # Public access\nprint(f\"Account type: {account._account_type}\")  # Protected access (discouraged but possible)\nprint(account.get_balance(1234))  # Access private balance through method\naccount.deposit(500)\nprint(account.withdraw(200, 1234))\n",[8567],{"type":993,"tag":1022,"props":8568,"children":8569},{"__ignoreMap":8},[8570,8585,8601,8619,8635,8651,8659,8666,8681,8697,8704,8711,8726,8742,8749,8756,8771,8787,8794,8801,8818,8834,8841,8848,8865,8914,8960,9005,9029,9046],{"type":993,"tag":1026,"props":8571,"children":8572},{"class":1028,"line":12},[8573,8577,8581],{"type":993,"tag":1026,"props":8574,"children":8575},{"style":1041},[8576],{"type":998,"value":1044},{"type":993,"tag":1026,"props":8578,"children":8579},{"style":1047},[8580],{"type":998,"value":1050},{"type":993,"tag":1026,"props":8582,"children":8583},{"style":1053},[8584],{"type":998,"value":1056},{"type":993,"tag":1026,"props":8586,"children":8587},{"class":1028,"line":27},[8588,8592,8596],{"type":993,"tag":1026,"props":8589,"children":8590},{"style":1041},[8591],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8593,"children":8594},{"style":1067},[8595],{"type":998,"value":1070},{"type":993,"tag":1026,"props":8597,"children":8598},{"style":1053},[8599],{"type":998,"value":8600},"(self, account_holder, account_type, initial_balance, pin):\n",{"type":993,"tag":1026,"props":8602,"children":8603},{"class":1028,"line":36},[8604,8609,8614],{"type":993,"tag":1026,"props":8605,"children":8606},{"style":1032},[8607],{"type":998,"value":8608},"        # ",{"type":993,"tag":1026,"props":8610,"children":8611},{"style":1041},[8612],{"type":998,"value":8613},"TODO",{"type":993,"tag":1026,"props":8615,"children":8616},{"style":1032},[8617],{"type":998,"value":8618},": Set public attribute for account holder name\n",{"type":993,"tag":1026,"props":8620,"children":8621},{"class":1028,"line":45},[8622,8626,8630],{"type":993,"tag":1026,"props":8623,"children":8624},{"style":1032},[8625],{"type":998,"value":8608},{"type":993,"tag":1026,"props":8627,"children":8628},{"style":1041},[8629],{"type":998,"value":8613},{"type":993,"tag":1026,"props":8631,"children":8632},{"style":1032},[8633],{"type":998,"value":8634},": Set protected attribute for account type\n",{"type":993,"tag":1026,"props":8636,"children":8637},{"class":1028,"line":54},[8638,8642,8646],{"type":993,"tag":1026,"props":8639,"children":8640},{"style":1032},[8641],{"type":998,"value":8608},{"type":993,"tag":1026,"props":8643,"children":8644},{"style":1041},[8645],{"type":998,"value":8613},{"type":993,"tag":1026,"props":8647,"children":8648},{"style":1032},[8649],{"type":998,"value":8650},": Set private attributes for balance and PIN\n",{"type":993,"tag":1026,"props":8652,"children":8653},{"class":1028,"line":63},[8654],{"type":993,"tag":1026,"props":8655,"children":8656},{"style":1041},[8657],{"type":998,"value":8658},"        pass\n",{"type":993,"tag":1026,"props":8660,"children":8661},{"class":1028,"line":72},[8662],{"type":993,"tag":1026,"props":8663,"children":8664},{"style":1053},[8665],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8667,"children":8668},{"class":1028,"line":81},[8669,8673,8677],{"type":993,"tag":1026,"props":8670,"children":8671},{"style":1041},[8672],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8674,"children":8675},{"style":1047},[8676],{"type":998,"value":1176},{"type":993,"tag":1026,"props":8678,"children":8679},{"style":1053},[8680],{"type":998,"value":1181},{"type":993,"tag":1026,"props":8682,"children":8683},{"class":1028,"line":91},[8684,8688,8692],{"type":993,"tag":1026,"props":8685,"children":8686},{"style":1032},[8687],{"type":998,"value":8608},{"type":993,"tag":1026,"props":8689,"children":8690},{"style":1041},[8691],{"type":998,"value":8613},{"type":993,"tag":1026,"props":8693,"children":8694},{"style":1032},[8695],{"type":998,"value":8696},": Add money to balance\n",{"type":993,"tag":1026,"props":8698,"children":8699},{"class":1028,"line":100},[8700],{"type":993,"tag":1026,"props":8701,"children":8702},{"style":1041},[8703],{"type":998,"value":8658},{"type":993,"tag":1026,"props":8705,"children":8706},{"class":1028,"line":109},[8707],{"type":993,"tag":1026,"props":8708,"children":8709},{"style":1053},[8710],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8712,"children":8713},{"class":1028,"line":118},[8714,8718,8722],{"type":993,"tag":1026,"props":8715,"children":8716},{"style":1041},[8717],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8719,"children":8720},{"style":1047},[8721],{"type":998,"value":3493},{"type":993,"tag":1026,"props":8723,"children":8724},{"style":1053},[8725],{"type":998,"value":3498},{"type":993,"tag":1026,"props":8727,"children":8728},{"class":1028,"line":127},[8729,8733,8737],{"type":993,"tag":1026,"props":8730,"children":8731},{"style":1032},[8732],{"type":998,"value":8608},{"type":993,"tag":1026,"props":8734,"children":8735},{"style":1041},[8736],{"type":998,"value":8613},{"type":993,"tag":1026,"props":8738,"children":8739},{"style":1032},[8740],{"type":998,"value":8741},": Remove money if PIN is correct and balance sufficient\n",{"type":993,"tag":1026,"props":8743,"children":8744},{"class":1028,"line":136},[8745],{"type":993,"tag":1026,"props":8746,"children":8747},{"style":1041},[8748],{"type":998,"value":8658},{"type":993,"tag":1026,"props":8750,"children":8751},{"class":1028,"line":146},[8752],{"type":993,"tag":1026,"props":8753,"children":8754},{"style":1053},[8755],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8757,"children":8758},{"class":1028,"line":155},[8759,8763,8767],{"type":993,"tag":1026,"props":8760,"children":8761},{"style":1041},[8762],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8764,"children":8765},{"style":1047},[8766],{"type":998,"value":1319},{"type":993,"tag":1026,"props":8768,"children":8769},{"style":1053},[8770],{"type":998,"value":3773},{"type":993,"tag":1026,"props":8772,"children":8773},{"class":1028,"line":164},[8774,8778,8782],{"type":993,"tag":1026,"props":8775,"children":8776},{"style":1032},[8777],{"type":998,"value":8608},{"type":993,"tag":1026,"props":8779,"children":8780},{"style":1041},[8781],{"type":998,"value":8613},{"type":993,"tag":1026,"props":8783,"children":8784},{"style":1032},[8785],{"type":998,"value":8786},": Return balance if PIN is correct\n",{"type":993,"tag":1026,"props":8788,"children":8789},{"class":1028,"line":173},[8790],{"type":993,"tag":1026,"props":8791,"children":8792},{"style":1041},[8793],{"type":998,"value":8658},{"type":993,"tag":1026,"props":8795,"children":8796},{"class":1028,"line":182},[8797],{"type":993,"tag":1026,"props":8798,"children":8799},{"style":1053},[8800],{"type":998,"value":1164},{"type":993,"tag":1026,"props":8802,"children":8803},{"class":1028,"line":191},[8804,8808,8813],{"type":993,"tag":1026,"props":8805,"children":8806},{"style":1041},[8807],{"type":998,"value":1064},{"type":993,"tag":1026,"props":8809,"children":8810},{"style":1047},[8811],{"type":998,"value":8812}," change_pin",{"type":993,"tag":1026,"props":8814,"children":8815},{"style":1053},[8816],{"type":998,"value":8817},"(self, old_pin, new_pin):\n",{"type":993,"tag":1026,"props":8819,"children":8820},{"class":1028,"line":201},[8821,8825,8829],{"type":993,"tag":1026,"props":8822,"children":8823},{"style":1032},[8824],{"type":998,"value":8608},{"type":993,"tag":1026,"props":8826,"children":8827},{"style":1041},[8828],{"type":998,"value":8613},{"type":993,"tag":1026,"props":8830,"children":8831},{"style":1032},[8832],{"type":998,"value":8833},": Change PIN if old PIN is correct\n",{"type":993,"tag":1026,"props":8835,"children":8836},{"class":1028,"line":210},[8837],{"type":993,"tag":1026,"props":8838,"children":8839},{"style":1041},[8840],{"type":998,"value":8658},{"type":993,"tag":1026,"props":8842,"children":8843},{"class":1028,"line":219},[8844],{"type":993,"tag":1026,"props":8845,"children":8846},{"emptyLinePlaceholder":13},[8847],{"type":998,"value":1425},{"type":993,"tag":1026,"props":8849,"children":8850},{"class":1028,"line":228},[8851,8856,8860],{"type":993,"tag":1026,"props":8852,"children":8853},{"style":1032},[8854],{"type":998,"value":8855},"# ",{"type":993,"tag":1026,"props":8857,"children":8858},{"style":1041},[8859],{"type":998,"value":8613},{"type":993,"tag":1026,"props":8861,"children":8862},{"style":1032},[8863],{"type":998,"value":8864},": Test your bank account\n",{"type":993,"tag":1026,"props":8866,"children":8867},{"class":1028,"line":238},[8868,8872,8876,8880,8884,8888,8893,8897,8901,8905,8910],{"type":993,"tag":1026,"props":8869,"children":8870},{"style":1053},[8871],{"type":998,"value":1441},{"type":993,"tag":1026,"props":8873,"children":8874},{"style":1041},[8875],{"type":998,"value":1093},{"type":993,"tag":1026,"props":8877,"children":8878},{"style":1053},[8879],{"type":998,"value":1450},{"type":993,"tag":1026,"props":8881,"children":8882},{"style":1122},[8883],{"type":998,"value":1455},{"type":993,"tag":1026,"props":8885,"children":8886},{"style":1053},[8887],{"type":998,"value":1460},{"type":993,"tag":1026,"props":8889,"children":8890},{"style":1122},[8891],{"type":998,"value":8892},"\"savings\"",{"type":993,"tag":1026,"props":8894,"children":8895},{"style":1053},[8896],{"type":998,"value":1460},{"type":993,"tag":1026,"props":8898,"children":8899},{"style":1067},[8900],{"type":998,"value":1465},{"type":993,"tag":1026,"props":8902,"children":8903},{"style":1053},[8904],{"type":998,"value":1460},{"type":993,"tag":1026,"props":8906,"children":8907},{"style":1067},[8908],{"type":998,"value":8909},"1234",{"type":993,"tag":1026,"props":8911,"children":8912},{"style":1053},[8913],{"type":998,"value":1470},{"type":993,"tag":1026,"props":8915,"children":8916},{"class":1028,"line":247},[8917,8921,8925,8929,8934,8938,8943,8947,8951,8955],{"type":993,"tag":1026,"props":8918,"children":8919},{"style":1067},[8920],{"type":998,"value":1478},{"type":993,"tag":1026,"props":8922,"children":8923},{"style":1053},[8924],{"type":998,"value":2173},{"type":993,"tag":1026,"props":8926,"children":8927},{"style":1041},[8928],{"type":998,"value":2178},{"type":993,"tag":1026,"props":8930,"children":8931},{"style":1122},[8932],{"type":998,"value":8933},"\"Account holder: ",{"type":993,"tag":1026,"props":8935,"children":8936},{"style":1067},[8937],{"type":998,"value":1253},{"type":993,"tag":1026,"props":8939,"children":8940},{"style":1053},[8941],{"type":998,"value":8942},"account.account_holder_name",{"type":993,"tag":1026,"props":8944,"children":8945},{"style":1067},[8946],{"type":998,"value":1263},{"type":993,"tag":1026,"props":8948,"children":8949},{"style":1122},[8950],{"type":998,"value":2201},{"type":993,"tag":1026,"props":8952,"children":8953},{"style":1053},[8954],{"type":998,"value":2314},{"type":993,"tag":1026,"props":8956,"children":8957},{"style":1032},[8958],{"type":998,"value":8959},"# Public access\n",{"type":993,"tag":1026,"props":8961,"children":8962},{"class":1028,"line":256},[8963,8967,8971,8975,8980,8984,8989,8993,8997,9001],{"type":993,"tag":1026,"props":8964,"children":8965},{"style":1067},[8966],{"type":998,"value":1478},{"type":993,"tag":1026,"props":8968,"children":8969},{"style":1053},[8970],{"type":998,"value":2173},{"type":993,"tag":1026,"props":8972,"children":8973},{"style":1041},[8974],{"type":998,"value":2178},{"type":993,"tag":1026,"props":8976,"children":8977},{"style":1122},[8978],{"type":998,"value":8979},"\"Account type: ",{"type":993,"tag":1026,"props":8981,"children":8982},{"style":1067},[8983],{"type":998,"value":1253},{"type":993,"tag":1026,"props":8985,"children":8986},{"style":1053},[8987],{"type":998,"value":8988},"account._account_type",{"type":993,"tag":1026,"props":8990,"children":8991},{"style":1067},[8992],{"type":998,"value":1263},{"type":993,"tag":1026,"props":8994,"children":8995},{"style":1122},[8996],{"type":998,"value":2201},{"type":993,"tag":1026,"props":8998,"children":8999},{"style":1053},[9000],{"type":998,"value":2314},{"type":993,"tag":1026,"props":9002,"children":9003},{"style":1032},[9004],{"type":998,"value":8487},{"type":993,"tag":1026,"props":9006,"children":9007},{"class":1028,"line":265},[9008,9012,9016,9020,9024],{"type":993,"tag":1026,"props":9009,"children":9010},{"style":1067},[9011],{"type":998,"value":1478},{"type":993,"tag":1026,"props":9013,"children":9014},{"style":1053},[9015],{"type":998,"value":4090},{"type":993,"tag":1026,"props":9017,"children":9018},{"style":1067},[9019],{"type":998,"value":8909},{"type":993,"tag":1026,"props":9021,"children":9022},{"style":1053},[9023],{"type":998,"value":7318},{"type":993,"tag":1026,"props":9025,"children":9026},{"style":1032},[9027],{"type":998,"value":9028},"# Access private balance through method\n",{"type":993,"tag":1026,"props":9030,"children":9031},{"class":1028,"line":274},[9032,9037,9042],{"type":993,"tag":1026,"props":9033,"children":9034},{"style":1053},[9035],{"type":998,"value":9036},"account.deposit(",{"type":993,"tag":1026,"props":9038,"children":9039},{"style":1067},[9040],{"type":998,"value":9041},"500",{"type":993,"tag":1026,"props":9043,"children":9044},{"style":1053},[9045],{"type":998,"value":1470},{"type":993,"tag":1026,"props":9047,"children":9048},{"class":1028,"line":284},[9049,9053,9057,9062,9066,9070],{"type":993,"tag":1026,"props":9050,"children":9051},{"style":1067},[9052],{"type":998,"value":1478},{"type":993,"tag":1026,"props":9054,"children":9055},{"style":1053},[9056],{"type":998,"value":4060},{"type":993,"tag":1026,"props":9058,"children":9059},{"style":1067},[9060],{"type":998,"value":9061},"200",{"type":993,"tag":1026,"props":9063,"children":9064},{"style":1053},[9065],{"type":998,"value":1460},{"type":993,"tag":1026,"props":9067,"children":9068},{"style":1067},[9069],{"type":998,"value":8909},{"type":993,"tag":1026,"props":9071,"children":9072},{"style":1053},[9073],{"type":998,"value":4078},{"type":993,"tag":1739,"props":9075,"children":9077},{"id":9076},"solution-and-explanation",[9078],{"type":998,"value":9079},"Solution and Explanation 💡",{"type":993,"tag":9081,"props":9082,"children":9083},"details",{},[9084,9092,9985,9993],{"type":993,"tag":9085,"props":9086,"children":9089},"summary",{"className":9087},[9088],"cursor-pointer",[9090],{"type":998,"value":9091},"Click to see the complete solution",{"type":993,"tag":1012,"props":9093,"children":9094},{},[9095],{"type":993,"tag":1016,"props":9096,"children":9098},{"className":1018,"code":9097,"language":6,"meta":8,"style":8},"class BankAccount:\n    def __init__(self, account_holder, account_type, initial_balance, pin):\n        # Public attribute for account holder name\n        self.account_holder_name = account_holder\n        # Protected attribute for account type\n        self._account_type = account_type\n        # Private attributes for balance and PIN\n        self.__balance = initial_balance\n        self.__pin = pin\n    \n    def deposit(self, amount):\n        # Add money to balance\n        if amount > 0:\n            self.__balance += amount\n            return f\"Deposited ${amount}. New balance: ${self.__balance}\"\n        return \"Invalid deposit amount\"\n    \n    def withdraw(self, amount, pin):\n        # Remove money if PIN is correct and balance sufficient\n        if pin != self.__pin:\n            return \"Invalid PIN\"\n        if amount \u003C= 0:\n            return \"Invalid withdrawal amount\"\n        if amount > self.__balance:\n            return \"Insufficient funds\"\n        \n        self.__balance -= amount\n        return f\"Withdrew ${amount}. New balance: ${self.__balance}\"\n    \n    def get_balance(self, pin):\n        # Return balance if PIN is correct\n        if pin == self.__pin:\n            return f\"Current balance: ${self.__balance}\"\n        return \"Invalid PIN\"\n    \n    def change_pin(self, old_pin, new_pin):\n        # Change PIN if old PIN is correct\n        if old_pin == self.__pin:\n            self.__pin = new_pin\n            return \"PIN changed successfully\"\n        return \"Invalid current PIN\"\n\n# Test your bank account\naccount = BankAccount(\"Alice\", \"savings\", 1000, 1234)\nprint(f\"Account holder: {account.account_holder_name}\")  # Public access\nprint(f\"Account type: {account._account_type}\")  # Protected access (discouraged but possible)\nprint(account.get_balance(1234))  # Access private balance through method\naccount.deposit(500)\nprint(account.withdraw(200, 1234))\n",[9099],{"type":993,"tag":1022,"props":9100,"children":9101},{"__ignoreMap":8},[9102,9117,9132,9140,9161,9169,9189,9197,9217,9237,9244,9259,9267,9290,9309,9357,9368,9375,9390,9398,9424,9436,9459,9471,9494,9505,9512,9531,9578,9585,9600,9608,9631,9663,9674,9681,9696,9704,9728,9748,9760,9772,9779,9787,9834,9877,9920,9943,9958],{"type":993,"tag":1026,"props":9103,"children":9104},{"class":1028,"line":12},[9105,9109,9113],{"type":993,"tag":1026,"props":9106,"children":9107},{"style":1041},[9108],{"type":998,"value":1044},{"type":993,"tag":1026,"props":9110,"children":9111},{"style":1047},[9112],{"type":998,"value":1050},{"type":993,"tag":1026,"props":9114,"children":9115},{"style":1053},[9116],{"type":998,"value":1056},{"type":993,"tag":1026,"props":9118,"children":9119},{"class":1028,"line":27},[9120,9124,9128],{"type":993,"tag":1026,"props":9121,"children":9122},{"style":1041},[9123],{"type":998,"value":1064},{"type":993,"tag":1026,"props":9125,"children":9126},{"style":1067},[9127],{"type":998,"value":1070},{"type":993,"tag":1026,"props":9129,"children":9130},{"style":1053},[9131],{"type":998,"value":8600},{"type":993,"tag":1026,"props":9133,"children":9134},{"class":1028,"line":36},[9135],{"type":993,"tag":1026,"props":9136,"children":9137},{"style":1032},[9138],{"type":998,"value":9139},"        # Public attribute for account holder name\n",{"type":993,"tag":1026,"props":9141,"children":9142},{"class":1028,"line":45},[9143,9147,9152,9156],{"type":993,"tag":1026,"props":9144,"children":9145},{"style":1067},[9146],{"type":998,"value":1083},{"type":993,"tag":1026,"props":9148,"children":9149},{"style":1053},[9150],{"type":998,"value":9151},".account_holder_name ",{"type":993,"tag":1026,"props":9153,"children":9154},{"style":1041},[9155],{"type":998,"value":1093},{"type":993,"tag":1026,"props":9157,"children":9158},{"style":1053},[9159],{"type":998,"value":9160}," account_holder\n",{"type":993,"tag":1026,"props":9162,"children":9163},{"class":1028,"line":54},[9164],{"type":993,"tag":1026,"props":9165,"children":9166},{"style":1032},[9167],{"type":998,"value":9168},"        # Protected attribute for account type\n",{"type":993,"tag":1026,"props":9170,"children":9171},{"class":1028,"line":63},[9172,9176,9180,9184],{"type":993,"tag":1026,"props":9173,"children":9174},{"style":1067},[9175],{"type":998,"value":1083},{"type":993,"tag":1026,"props":9177,"children":9178},{"style":1053},[9179],{"type":998,"value":1115},{"type":993,"tag":1026,"props":9181,"children":9182},{"style":1041},[9183],{"type":998,"value":1093},{"type":993,"tag":1026,"props":9185,"children":9186},{"style":1053},[9187],{"type":998,"value":9188}," account_type\n",{"type":993,"tag":1026,"props":9190,"children":9191},{"class":1028,"line":72},[9192],{"type":993,"tag":1026,"props":9193,"children":9194},{"style":1032},[9195],{"type":998,"value":9196},"        # Private attributes for balance and PIN\n",{"type":993,"tag":1026,"props":9198,"children":9199},{"class":1028,"line":81},[9200,9204,9208,9212],{"type":993,"tag":1026,"props":9201,"children":9202},{"style":1067},[9203],{"type":998,"value":1083},{"type":993,"tag":1026,"props":9205,"children":9206},{"style":1053},[9207],{"type":998,"value":1142},{"type":993,"tag":1026,"props":9209,"children":9210},{"style":1041},[9211],{"type":998,"value":1093},{"type":993,"tag":1026,"props":9213,"children":9214},{"style":1053},[9215],{"type":998,"value":9216}," initial_balance\n",{"type":993,"tag":1026,"props":9218,"children":9219},{"class":1028,"line":91},[9220,9224,9228,9232],{"type":993,"tag":1026,"props":9221,"children":9222},{"style":1067},[9223],{"type":998,"value":1083},{"type":993,"tag":1026,"props":9225,"children":9226},{"style":1053},[9227],{"type":998,"value":3363},{"type":993,"tag":1026,"props":9229,"children":9230},{"style":1041},[9231],{"type":998,"value":1093},{"type":993,"tag":1026,"props":9233,"children":9234},{"style":1053},[9235],{"type":998,"value":9236}," pin\n",{"type":993,"tag":1026,"props":9238,"children":9239},{"class":1028,"line":100},[9240],{"type":993,"tag":1026,"props":9241,"children":9242},{"style":1053},[9243],{"type":998,"value":1164},{"type":993,"tag":1026,"props":9245,"children":9246},{"class":1028,"line":109},[9247,9251,9255],{"type":993,"tag":1026,"props":9248,"children":9249},{"style":1041},[9250],{"type":998,"value":1064},{"type":993,"tag":1026,"props":9252,"children":9253},{"style":1047},[9254],{"type":998,"value":1176},{"type":993,"tag":1026,"props":9256,"children":9257},{"style":1053},[9258],{"type":998,"value":1181},{"type":993,"tag":1026,"props":9260,"children":9261},{"class":1028,"line":118},[9262],{"type":993,"tag":1026,"props":9263,"children":9264},{"style":1032},[9265],{"type":998,"value":9266},"        # Add money to balance\n",{"type":993,"tag":1026,"props":9268,"children":9269},{"class":1028,"line":127},[9270,9274,9278,9282,9286],{"type":993,"tag":1026,"props":9271,"children":9272},{"style":1041},[9273],{"type":998,"value":1189},{"type":993,"tag":1026,"props":9275,"children":9276},{"style":1053},[9277],{"type":998,"value":1194},{"type":993,"tag":1026,"props":9279,"children":9280},{"style":1041},[9281],{"type":998,"value":1199},{"type":993,"tag":1026,"props":9283,"children":9284},{"style":1067},[9285],{"type":998,"value":1204},{"type":993,"tag":1026,"props":9287,"children":9288},{"style":1053},[9289],{"type":998,"value":1056},{"type":993,"tag":1026,"props":9291,"children":9292},{"class":1028,"line":136},[9293,9297,9301,9305],{"type":993,"tag":1026,"props":9294,"children":9295},{"style":1067},[9296],{"type":998,"value":1216},{"type":993,"tag":1026,"props":9298,"children":9299},{"style":1053},[9300],{"type":998,"value":1142},{"type":993,"tag":1026,"props":9302,"children":9303},{"style":1041},[9304],{"type":998,"value":1225},{"type":993,"tag":1026,"props":9306,"children":9307},{"style":1053},[9308],{"type":998,"value":1230},{"type":993,"tag":1026,"props":9310,"children":9311},{"class":1028,"line":146},[9312,9316,9320,9324,9328,9332,9336,9341,9345,9349,9353],{"type":993,"tag":1026,"props":9313,"children":9314},{"style":1041},[9315],{"type":998,"value":1238},{"type":993,"tag":1026,"props":9317,"children":9318},{"style":1041},[9319],{"type":998,"value":1243},{"type":993,"tag":1026,"props":9321,"children":9322},{"style":1122},[9323],{"type":998,"value":1248},{"type":993,"tag":1026,"props":9325,"children":9326},{"style":1067},[9327],{"type":998,"value":1253},{"type":993,"tag":1026,"props":9329,"children":9330},{"style":1053},[9331],{"type":998,"value":1258},{"type":993,"tag":1026,"props":9333,"children":9334},{"style":1067},[9335],{"type":998,"value":1263},{"type":993,"tag":1026,"props":9337,"children":9338},{"style":1122},[9339],{"type":998,"value":9340},". New balance: $",{"type":993,"tag":1026,"props":9342,"children":9343},{"style":1067},[9344],{"type":998,"value":1273},{"type":993,"tag":1026,"props":9346,"children":9347},{"style":1053},[9348],{"type":998,"value":3742},{"type":993,"tag":1026,"props":9350,"children":9351},{"style":1067},[9352],{"type":998,"value":1263},{"type":993,"tag":1026,"props":9354,"children":9355},{"style":1122},[9356],{"type":998,"value":1287},{"type":993,"tag":1026,"props":9358,"children":9359},{"class":1028,"line":155},[9360,9364],{"type":993,"tag":1026,"props":9361,"children":9362},{"style":1041},[9363],{"type":998,"value":1295},{"type":993,"tag":1026,"props":9365,"children":9366},{"style":1122},[9367],{"type":998,"value":1300},{"type":993,"tag":1026,"props":9369,"children":9370},{"class":1028,"line":164},[9371],{"type":993,"tag":1026,"props":9372,"children":9373},{"style":1053},[9374],{"type":998,"value":1164},{"type":993,"tag":1026,"props":9376,"children":9377},{"class":1028,"line":173},[9378,9382,9386],{"type":993,"tag":1026,"props":9379,"children":9380},{"style":1041},[9381],{"type":998,"value":1064},{"type":993,"tag":1026,"props":9383,"children":9384},{"style":1047},[9385],{"type":998,"value":3493},{"type":993,"tag":1026,"props":9387,"children":9388},{"style":1053},[9389],{"type":998,"value":3498},{"type":993,"tag":1026,"props":9391,"children":9392},{"class":1028,"line":182},[9393],{"type":993,"tag":1026,"props":9394,"children":9395},{"style":1032},[9396],{"type":998,"value":9397},"        # Remove money if PIN is correct and balance sufficient\n",{"type":993,"tag":1026,"props":9399,"children":9400},{"class":1028,"line":191},[9401,9405,9410,9415,9419],{"type":993,"tag":1026,"props":9402,"children":9403},{"style":1041},[9404],{"type":998,"value":1189},{"type":993,"tag":1026,"props":9406,"children":9407},{"style":1053},[9408],{"type":998,"value":9409}," pin ",{"type":993,"tag":1026,"props":9411,"children":9412},{"style":1041},[9413],{"type":998,"value":9414},"!=",{"type":993,"tag":1026,"props":9416,"children":9417},{"style":1067},[9418],{"type":998,"value":1336},{"type":993,"tag":1026,"props":9420,"children":9421},{"style":1053},[9422],{"type":998,"value":9423},".__pin:\n",{"type":993,"tag":1026,"props":9425,"children":9426},{"class":1028,"line":201},[9427,9431],{"type":993,"tag":1026,"props":9428,"children":9429},{"style":1041},[9430],{"type":998,"value":1238},{"type":993,"tag":1026,"props":9432,"children":9433},{"style":1122},[9434],{"type":998,"value":9435}," \"Invalid PIN\"\n",{"type":993,"tag":1026,"props":9437,"children":9438},{"class":1028,"line":210},[9439,9443,9447,9451,9455],{"type":993,"tag":1026,"props":9440,"children":9441},{"style":1041},[9442],{"type":998,"value":1189},{"type":993,"tag":1026,"props":9444,"children":9445},{"style":1053},[9446],{"type":998,"value":1194},{"type":993,"tag":1026,"props":9448,"children":9449},{"style":1041},[9450],{"type":998,"value":1408},{"type":993,"tag":1026,"props":9452,"children":9453},{"style":1067},[9454],{"type":998,"value":1204},{"type":993,"tag":1026,"props":9456,"children":9457},{"style":1053},[9458],{"type":998,"value":1056},{"type":993,"tag":1026,"props":9460,"children":9461},{"class":1028,"line":219},[9462,9466],{"type":993,"tag":1026,"props":9463,"children":9464},{"style":1041},[9465],{"type":998,"value":1238},{"type":993,"tag":1026,"props":9467,"children":9468},{"style":1122},[9469],{"type":998,"value":9470}," \"Invalid withdrawal amount\"\n",{"type":993,"tag":1026,"props":9472,"children":9473},{"class":1028,"line":228},[9474,9478,9482,9486,9490],{"type":993,"tag":1026,"props":9475,"children":9476},{"style":1041},[9477],{"type":998,"value":1189},{"type":993,"tag":1026,"props":9479,"children":9480},{"style":1053},[9481],{"type":998,"value":1194},{"type":993,"tag":1026,"props":9483,"children":9484},{"style":1041},[9485],{"type":998,"value":1199},{"type":993,"tag":1026,"props":9487,"children":9488},{"style":1067},[9489],{"type":998,"value":1336},{"type":993,"tag":1026,"props":9491,"children":9492},{"style":1053},[9493],{"type":998,"value":3583},{"type":993,"tag":1026,"props":9495,"children":9496},{"class":1028,"line":238},[9497,9501],{"type":993,"tag":1026,"props":9498,"children":9499},{"style":1041},[9500],{"type":998,"value":1238},{"type":993,"tag":1026,"props":9502,"children":9503},{"style":1122},[9504],{"type":998,"value":3635},{"type":993,"tag":1026,"props":9506,"children":9507},{"class":1028,"line":247},[9508],{"type":993,"tag":1026,"props":9509,"children":9510},{"style":1053},[9511],{"type":998,"value":3559},{"type":993,"tag":1026,"props":9513,"children":9514},{"class":1028,"line":256},[9515,9519,9523,9527],{"type":993,"tag":1026,"props":9516,"children":9517},{"style":1067},[9518],{"type":998,"value":1083},{"type":993,"tag":1026,"props":9520,"children":9521},{"style":1053},[9522],{"type":998,"value":1142},{"type":993,"tag":1026,"props":9524,"children":9525},{"style":1041},[9526],{"type":998,"value":2960},{"type":993,"tag":1026,"props":9528,"children":9529},{"style":1053},[9530],{"type":998,"value":1230},{"type":993,"tag":1026,"props":9532,"children":9533},{"class":1028,"line":265},[9534,9538,9542,9546,9550,9554,9558,9562,9566,9570,9574],{"type":993,"tag":1026,"props":9535,"children":9536},{"style":1041},[9537],{"type":998,"value":1295},{"type":993,"tag":1026,"props":9539,"children":9540},{"style":1041},[9541],{"type":998,"value":1243},{"type":993,"tag":1026,"props":9543,"children":9544},{"style":1122},[9545],{"type":998,"value":3717},{"type":993,"tag":1026,"props":9547,"children":9548},{"style":1067},[9549],{"type":998,"value":1253},{"type":993,"tag":1026,"props":9551,"children":9552},{"style":1053},[9553],{"type":998,"value":1258},{"type":993,"tag":1026,"props":9555,"children":9556},{"style":1067},[9557],{"type":998,"value":1263},{"type":993,"tag":1026,"props":9559,"children":9560},{"style":1122},[9561],{"type":998,"value":9340},{"type":993,"tag":1026,"props":9563,"children":9564},{"style":1067},[9565],{"type":998,"value":1273},{"type":993,"tag":1026,"props":9567,"children":9568},{"style":1053},[9569],{"type":998,"value":3742},{"type":993,"tag":1026,"props":9571,"children":9572},{"style":1067},[9573],{"type":998,"value":1263},{"type":993,"tag":1026,"props":9575,"children":9576},{"style":1122},[9577],{"type":998,"value":1287},{"type":993,"tag":1026,"props":9579,"children":9580},{"class":1028,"line":274},[9581],{"type":993,"tag":1026,"props":9582,"children":9583},{"style":1053},[9584],{"type":998,"value":1164},{"type":993,"tag":1026,"props":9586,"children":9587},{"class":1028,"line":284},[9588,9592,9596],{"type":993,"tag":1026,"props":9589,"children":9590},{"style":1041},[9591],{"type":998,"value":1064},{"type":993,"tag":1026,"props":9593,"children":9594},{"style":1047},[9595],{"type":998,"value":1319},{"type":993,"tag":1026,"props":9597,"children":9598},{"style":1053},[9599],{"type":998,"value":3773},{"type":993,"tag":1026,"props":9601,"children":9602},{"class":1028,"line":293},[9603],{"type":993,"tag":1026,"props":9604,"children":9605},{"style":1032},[9606],{"type":998,"value":9607},"        # Return balance if PIN is correct\n",{"type":993,"tag":1026,"props":9609,"children":9610},{"class":1028,"line":302},[9611,9615,9619,9623,9627],{"type":993,"tag":1026,"props":9612,"children":9613},{"style":1041},[9614],{"type":998,"value":1189},{"type":993,"tag":1026,"props":9616,"children":9617},{"style":1053},[9618],{"type":998,"value":9409},{"type":993,"tag":1026,"props":9620,"children":9621},{"style":1041},[9622],{"type":998,"value":2915},{"type":993,"tag":1026,"props":9624,"children":9625},{"style":1067},[9626],{"type":998,"value":1336},{"type":993,"tag":1026,"props":9628,"children":9629},{"style":1053},[9630],{"type":998,"value":9423},{"type":993,"tag":1026,"props":9632,"children":9633},{"class":1028,"line":311},[9634,9638,9642,9647,9651,9655,9659],{"type":993,"tag":1026,"props":9635,"children":9636},{"style":1041},[9637],{"type":998,"value":1238},{"type":993,"tag":1026,"props":9639,"children":9640},{"style":1041},[9641],{"type":998,"value":1243},{"type":993,"tag":1026,"props":9643,"children":9644},{"style":1122},[9645],{"type":998,"value":9646},"\"Current balance: $",{"type":993,"tag":1026,"props":9648,"children":9649},{"style":1067},[9650],{"type":998,"value":1273},{"type":993,"tag":1026,"props":9652,"children":9653},{"style":1053},[9654],{"type":998,"value":3742},{"type":993,"tag":1026,"props":9656,"children":9657},{"style":1067},[9658],{"type":998,"value":1263},{"type":993,"tag":1026,"props":9660,"children":9661},{"style":1122},[9662],{"type":998,"value":1287},{"type":993,"tag":1026,"props":9664,"children":9665},{"class":1028,"line":320},[9666,9670],{"type":993,"tag":1026,"props":9667,"children":9668},{"style":1041},[9669],{"type":998,"value":1295},{"type":993,"tag":1026,"props":9671,"children":9672},{"style":1122},[9673],{"type":998,"value":9435},{"type":993,"tag":1026,"props":9675,"children":9676},{"class":1028,"line":329},[9677],{"type":993,"tag":1026,"props":9678,"children":9679},{"style":1053},[9680],{"type":998,"value":1164},{"type":993,"tag":1026,"props":9682,"children":9683},{"class":1028,"line":338},[9684,9688,9692],{"type":993,"tag":1026,"props":9685,"children":9686},{"style":1041},[9687],{"type":998,"value":1064},{"type":993,"tag":1026,"props":9689,"children":9690},{"style":1047},[9691],{"type":998,"value":8812},{"type":993,"tag":1026,"props":9693,"children":9694},{"style":1053},[9695],{"type":998,"value":8817},{"type":993,"tag":1026,"props":9697,"children":9698},{"class":1028,"line":347},[9699],{"type":993,"tag":1026,"props":9700,"children":9701},{"style":1032},[9702],{"type":998,"value":9703},"        # Change PIN if old PIN is correct\n",{"type":993,"tag":1026,"props":9705,"children":9706},{"class":1028,"line":356},[9707,9711,9716,9720,9724],{"type":993,"tag":1026,"props":9708,"children":9709},{"style":1041},[9710],{"type":998,"value":1189},{"type":993,"tag":1026,"props":9712,"children":9713},{"style":1053},[9714],{"type":998,"value":9715}," old_pin ",{"type":993,"tag":1026,"props":9717,"children":9718},{"style":1041},[9719],{"type":998,"value":2915},{"type":993,"tag":1026,"props":9721,"children":9722},{"style":1067},[9723],{"type":998,"value":1336},{"type":993,"tag":1026,"props":9725,"children":9726},{"style":1053},[9727],{"type":998,"value":9423},{"type":993,"tag":1026,"props":9729,"children":9730},{"class":1028,"line":365},[9731,9735,9739,9743],{"type":993,"tag":1026,"props":9732,"children":9733},{"style":1067},[9734],{"type":998,"value":1216},{"type":993,"tag":1026,"props":9736,"children":9737},{"style":1053},[9738],{"type":998,"value":3363},{"type":993,"tag":1026,"props":9740,"children":9741},{"style":1041},[9742],{"type":998,"value":1093},{"type":993,"tag":1026,"props":9744,"children":9745},{"style":1053},[9746],{"type":998,"value":9747}," new_pin\n",{"type":993,"tag":1026,"props":9749,"children":9750},{"class":1028,"line":374},[9751,9755],{"type":993,"tag":1026,"props":9752,"children":9753},{"style":1041},[9754],{"type":998,"value":1238},{"type":993,"tag":1026,"props":9756,"children":9757},{"style":1122},[9758],{"type":998,"value":9759}," \"PIN changed successfully\"\n",{"type":993,"tag":1026,"props":9761,"children":9762},{"class":1028,"line":384},[9763,9767],{"type":993,"tag":1026,"props":9764,"children":9765},{"style":1041},[9766],{"type":998,"value":1295},{"type":993,"tag":1026,"props":9768,"children":9769},{"style":1122},[9770],{"type":998,"value":9771}," \"Invalid current PIN\"\n",{"type":993,"tag":1026,"props":9773,"children":9774},{"class":1028,"line":393},[9775],{"type":993,"tag":1026,"props":9776,"children":9777},{"emptyLinePlaceholder":13},[9778],{"type":998,"value":1425},{"type":993,"tag":1026,"props":9780,"children":9781},{"class":1028,"line":402},[9782],{"type":993,"tag":1026,"props":9783,"children":9784},{"style":1032},[9785],{"type":998,"value":9786},"# Test your bank account\n",{"type":993,"tag":1026,"props":9788,"children":9789},{"class":1028,"line":411},[9790,9794,9798,9802,9806,9810,9814,9818,9822,9826,9830],{"type":993,"tag":1026,"props":9791,"children":9792},{"style":1053},[9793],{"type":998,"value":1441},{"type":993,"tag":1026,"props":9795,"children":9796},{"style":1041},[9797],{"type":998,"value":1093},{"type":993,"tag":1026,"props":9799,"children":9800},{"style":1053},[9801],{"type":998,"value":1450},{"type":993,"tag":1026,"props":9803,"children":9804},{"style":1122},[9805],{"type":998,"value":1455},{"type":993,"tag":1026,"props":9807,"children":9808},{"style":1053},[9809],{"type":998,"value":1460},{"type":993,"tag":1026,"props":9811,"children":9812},{"style":1122},[9813],{"type":998,"value":8892},{"type":993,"tag":1026,"props":9815,"children":9816},{"style":1053},[9817],{"type":998,"value":1460},{"type":993,"tag":1026,"props":9819,"children":9820},{"style":1067},[9821],{"type":998,"value":1465},{"type":993,"tag":1026,"props":9823,"children":9824},{"style":1053},[9825],{"type":998,"value":1460},{"type":993,"tag":1026,"props":9827,"children":9828},{"style":1067},[9829],{"type":998,"value":8909},{"type":993,"tag":1026,"props":9831,"children":9832},{"style":1053},[9833],{"type":998,"value":1470},{"type":993,"tag":1026,"props":9835,"children":9836},{"class":1028,"line":420},[9837,9841,9845,9849,9853,9857,9861,9865,9869,9873],{"type":993,"tag":1026,"props":9838,"children":9839},{"style":1067},[9840],{"type":998,"value":1478},{"type":993,"tag":1026,"props":9842,"children":9843},{"style":1053},[9844],{"type":998,"value":2173},{"type":993,"tag":1026,"props":9846,"children":9847},{"style":1041},[9848],{"type":998,"value":2178},{"type":993,"tag":1026,"props":9850,"children":9851},{"style":1122},[9852],{"type":998,"value":8933},{"type":993,"tag":1026,"props":9854,"children":9855},{"style":1067},[9856],{"type":998,"value":1253},{"type":993,"tag":1026,"props":9858,"children":9859},{"style":1053},[9860],{"type":998,"value":8942},{"type":993,"tag":1026,"props":9862,"children":9863},{"style":1067},[9864],{"type":998,"value":1263},{"type":993,"tag":1026,"props":9866,"children":9867},{"style":1122},[9868],{"type":998,"value":2201},{"type":993,"tag":1026,"props":9870,"children":9871},{"style":1053},[9872],{"type":998,"value":2314},{"type":993,"tag":1026,"props":9874,"children":9875},{"style":1032},[9876],{"type":998,"value":8959},{"type":993,"tag":1026,"props":9878,"children":9879},{"class":1028,"line":429},[9880,9884,9888,9892,9896,9900,9904,9908,9912,9916],{"type":993,"tag":1026,"props":9881,"children":9882},{"style":1067},[9883],{"type":998,"value":1478},{"type":993,"tag":1026,"props":9885,"children":9886},{"style":1053},[9887],{"type":998,"value":2173},{"type":993,"tag":1026,"props":9889,"children":9890},{"style":1041},[9891],{"type":998,"value":2178},{"type":993,"tag":1026,"props":9893,"children":9894},{"style":1122},[9895],{"type":998,"value":8979},{"type":993,"tag":1026,"props":9897,"children":9898},{"style":1067},[9899],{"type":998,"value":1253},{"type":993,"tag":1026,"props":9901,"children":9902},{"style":1053},[9903],{"type":998,"value":8988},{"type":993,"tag":1026,"props":9905,"children":9906},{"style":1067},[9907],{"type":998,"value":1263},{"type":993,"tag":1026,"props":9909,"children":9910},{"style":1122},[9911],{"type":998,"value":2201},{"type":993,"tag":1026,"props":9913,"children":9914},{"style":1053},[9915],{"type":998,"value":2314},{"type":993,"tag":1026,"props":9917,"children":9918},{"style":1032},[9919],{"type":998,"value":8487},{"type":993,"tag":1026,"props":9921,"children":9922},{"class":1028,"line":438},[9923,9927,9931,9935,9939],{"type":993,"tag":1026,"props":9924,"children":9925},{"style":1067},[9926],{"type":998,"value":1478},{"type":993,"tag":1026,"props":9928,"children":9929},{"style":1053},[9930],{"type":998,"value":4090},{"type":993,"tag":1026,"props":9932,"children":9933},{"style":1067},[9934],{"type":998,"value":8909},{"type":993,"tag":1026,"props":9936,"children":9937},{"style":1053},[9938],{"type":998,"value":7318},{"type":993,"tag":1026,"props":9940,"children":9941},{"style":1032},[9942],{"type":998,"value":9028},{"type":993,"tag":1026,"props":9944,"children":9945},{"class":1028,"line":447},[9946,9950,9954],{"type":993,"tag":1026,"props":9947,"children":9948},{"style":1053},[9949],{"type":998,"value":9036},{"type":993,"tag":1026,"props":9951,"children":9952},{"style":1067},[9953],{"type":998,"value":9041},{"type":993,"tag":1026,"props":9955,"children":9956},{"style":1053},[9957],{"type":998,"value":1470},{"type":993,"tag":1026,"props":9959,"children":9960},{"class":1028,"line":457},[9961,9965,9969,9973,9977,9981],{"type":993,"tag":1026,"props":9962,"children":9963},{"style":1067},[9964],{"type":998,"value":1478},{"type":993,"tag":1026,"props":9966,"children":9967},{"style":1053},[9968],{"type":998,"value":4060},{"type":993,"tag":1026,"props":9970,"children":9971},{"style":1067},[9972],{"type":998,"value":9061},{"type":993,"tag":1026,"props":9974,"children":9975},{"style":1053},[9976],{"type":998,"value":1460},{"type":993,"tag":1026,"props":9978,"children":9979},{"style":1067},[9980],{"type":998,"value":8909},{"type":993,"tag":1026,"props":9982,"children":9983},{"style":1053},[9984],{"type":998,"value":4078},{"type":993,"tag":1001,"props":9986,"children":9987},{},[9988],{"type":993,"tag":1554,"props":9989,"children":9990},{},[9991],{"type":998,"value":9992},"Key Learning Points:",{"type":993,"tag":1560,"props":9994,"children":9995},{},[9996,10008,10027,10046,10057],{"type":993,"tag":1564,"props":9997,"children":9998},{},[9999,10001,10006],{"type":998,"value":10000},"📌 ",{"type":993,"tag":1554,"props":10002,"children":10003},{},[10004],{"type":998,"value":10005},"Public attributes",{"type":998,"value":10007},": No leading underscores, freely accessible from outside",{"type":993,"tag":1564,"props":10009,"children":10010},{},[10011,10012,10017,10019,10025],{"type":998,"value":10000},{"type":993,"tag":1554,"props":10013,"children":10014},{},[10015],{"type":998,"value":10016},"Protected attributes",{"type":998,"value":10018},": Single underscore ",{"type":993,"tag":1022,"props":10020,"children":10022},{"className":10021},[],[10023],{"type":998,"value":10024},"_attribute",{"type":998,"value":10026},", internal use (discouraged access)",{"type":993,"tag":1564,"props":10028,"children":10029},{},[10030,10031,10036,10038,10044],{"type":998,"value":10000},{"type":993,"tag":1554,"props":10032,"children":10033},{},[10034],{"type":998,"value":10035},"Private attributes",{"type":998,"value":10037},": Double underscore ",{"type":993,"tag":1022,"props":10039,"children":10041},{"className":10040},[],[10042],{"type":998,"value":10043},"__attribute",{"type":998,"value":10045},", name mangling prevents direct access",{"type":993,"tag":1564,"props":10047,"children":10048},{},[10049,10050,10055],{"type":998,"value":10000},{"type":993,"tag":1554,"props":10051,"children":10052},{},[10053],{"type":998,"value":10054},"Controlled access",{"type":998,"value":10056},": Use methods to safely access and modify private data",{"type":993,"tag":1564,"props":10058,"children":10059},{},[10060,10061,10066],{"type":998,"value":10000},{"type":993,"tag":1554,"props":10062,"children":10063},{},[10064],{"type":998,"value":10065},"Encapsulation",{"type":998,"value":10067},": Hide sensitive data while providing safe public interface",{"type":993,"tag":1001,"props":10069,"children":10070},{},[10071,10073,10079],{"type":998,"value":10072},"Learn more about ",{"type":993,"tag":10074,"props":10075,"children":10076},"a",{"href":690},[10077],{"type":998,"value":10078},"object methods",{"type":998,"value":10080}," to understand how methods work with different visibility levels.",{"type":993,"tag":1532,"props":10082,"children":10084},{"id":10083},"test-your-knowledge",[10085],{"type":998,"value":10086},"Test Your Knowledge",{"type":993,"tag":1001,"props":10088,"children":10089},{},[10090],{"type":998,"value":10091},"Test what you've learned about variable visibility:",{"type":993,"tag":10093,"props":10094,"children":10098},"redirect-button",{"icon":10095,"label":10096,"url":10097},"pi pi-send","Take Quiz","/tutorial-quiz/python/variable-visibility",[],{"type":993,"tag":1532,"props":10100,"children":10102},{"id":10101},"whats-next",[10103],{"type":998,"value":10104},"What's Next?",{"type":993,"tag":1001,"props":10106,"children":10107},{},[10108],{"type":998,"value":10109},"Congratulations! You've completed the core object programming concepts. You now understand classes, objects, methods, inheritance, overriding, and visibility. These fundamentals prepare you for advanced topics like special methods, decorators, and design patterns.",{"type":993,"tag":1001,"props":10111,"children":10112},{},[10113,10115,10119],{"type":998,"value":10114},"Ready to explore more advanced concepts? Check out our lesson on ",{"type":993,"tag":10074,"props":10116,"children":10117},{"href":726},[10118],{"type":998,"value":727},{"type":998,"value":10120},".",{"type":993,"tag":10122,"props":10123,"children":10124},"style",{},[10125],{"type":998,"value":10126},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .app-dark-mode .shiki span {color: var(--shiki-app-dark-mode);background: var(--shiki-app-dark-mode-bg);font-style: var(--shiki-app-dark-mode-font-style);font-weight: var(--shiki-app-dark-mode-font-weight);text-decoration: var(--shiki-app-dark-mode-text-decoration);}html.app-dark-mode .shiki span {color: var(--shiki-app-dark-mode);background: var(--shiki-app-dark-mode-bg);font-style: var(--shiki-app-dark-mode-font-style);font-weight: var(--shiki-app-dark-mode-font-weight);text-decoration: var(--shiki-app-dark-mode-text-decoration);}",{"title":8,"searchDepth":36,"depth":36,"links":10128},[10129,10134,10138,10142,10147,10148],{"id":1534,"depth":27,"text":1537,"children":10130},[10131,10132,10133],{"id":1741,"depth":36,"text":1744},{"id":2383,"depth":36,"text":2386},{"id":3251,"depth":36,"text":3254},{"id":4193,"depth":27,"text":4196,"children":10135},[10136,10137],{"id":4204,"depth":36,"text":4207},{"id":4741,"depth":36,"text":4744},{"id":5301,"depth":27,"text":5304,"children":10139},[10140,10141],{"id":5307,"depth":36,"text":5310},{"id":6210,"depth":36,"text":6213},{"id":7442,"depth":27,"text":7445,"children":10143},[10144,10145,10146],{"id":7448,"depth":36,"text":7451},{"id":7589,"depth":36,"text":7592},{"id":9076,"depth":36,"text":9079},{"id":10083,"depth":27,"text":10086},{"id":10101,"depth":27,"text":10104},1782373747768]