Recipe 2.1: Creating AttributesRecipe 2.2: Getting and Setting Attribute ValuesRecipe 2.3: Creating 'Read Only' AttributesRecipe 2.4: Creating 'Class Attributes'Recipe 2.5: Creating 'Class-Specific' AttributesRecipe 2.6: Creating MethodsRecipe 2.7: Creating 'Class Methods'Recipe 2.8: Creating Abstract MethodsRecipe 2.9: 'Finalizing' the Interface/Signature/Prototype of a MethodRecipe 2.10: 'Finalizing' the Implementation of a MethodRecipe 2.11: Creating 'Memoized' Attributes and MethodsRecipe 2.12: Calling Methods Only if They ExistRecipe 2.13: Calling Methods IndirectlyRecipe 2.14: Calling a Method with the Same Arguments as the Current MethodRecipe 2.15: Creating Methods with Multiple Signatures (Multimethods)Recipe 2.16: Creating Context-Aware MethodsRecipe 2.17: Changing the Method Signature Based on Caller