<jupyter_start><jupyter_text>Advance Assignments-3 Q1. What is the concept of an abstract superclass?:- A common superclass for several subclasses. Factor up common behavior. Define the methods they all respond to. Methods that subclasses should implement are declared abstract Q2. What happens when a class statement's top level contains a basic assignment statement?:- an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable. In most imperative programming languages, the assignment statement (or expression) is a fundamental construct Q3. Why does a class need to manually call a superclass's __init__ method?:- when you want to use old classes in that case need to manually call the super class __init__ method.    for ex:-class A:    class B(A):    def __init__(self, p1, p2):        A.__init__(p1, p2)<jupyter_code>#Q4. How can you augment, instead of completely replacing, an inherited method?

# See below example: 
        
class Spam:
    
    def update(self):
        print('updating spam!')

class SpamLite(Spam):
    
    def update(self):
        print('this spam is lite!')
        Spam.update(self)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.06682577565632458, 'fraction_numerical': 0.007159904534606206, 'mean_word_length': 3.972332015810277, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '369569', 'license': 'Apache-2.0', 'n_tokens_mistral': 339, 'n_tokens_neox': 329, 'n_words': 164, 'path': 'Advance Assignments-3.ipynb', 'repo_name': 'TiwariManis/Assinments', 'size': '1257'}