human
I am working on the file "Classes+and+Objects.ipynb".
The first task is:
Inside the class body, we define two functions – these are our object’s methods. The first is called _init_, which is a special method. When we call the class object, a new instance of the class is created, and the _init_ method on this new object is immediately executed with all the parameters that we passed to the class object. The purpose of this method is thus to set up a new object using data that we have provided.
The second method is a custom method which derives the fullname of the person using the firstname and the lastname.

_init_ is sometimes called the object’s constructor, because it is used similarly to the way that constructors are used in other languages, but that is not technically correct – it’s better to call it the initialiser. There is a different method called _new_ which is more analogous to a constructor, but it is hardly ever used.

You may have noticed that both of these method definitions have self as the first parameter, and we use this variable inside the method bodies – but we don’t appear to pass this parameter in. This is because whenever we call a method on an object, the object itself is automatically passed in as the first parameter (as self). This gives us a way to access the object’s properties from inside the object’s methods.
Instance Attributes
All the attributes that are defined on the Person instance are called instance attributes. They are added to the instance when the _init_ method is executed.
Class Attributes
We can, however, also define attributes which are set on the class. These attributes will be shared by all instances of that class. In many ways they behave just like instance attributes, but there are some caveats that you should be aware of.
We define class attributes in the body of a class, at the same indentation level as method definitions (one level up from the insides of methods)
Can you write Python program for it?

Can you provide a the Python program you requested?
assistant
#Here is the Python program you requested.

class Person:
    '''Simple Person Class
    
       Attributes:
           firstname: String representing first name of the person
           lastname: String representing last name of the person
    '''
    TITLES = ['Mr','Mrs','Master']
    
    def __init__(self,title,firstname,lastname):
        '''Initialiser method for Person'''
        if title not in self.TITLES:
            raise ValueError("%s is not a valid title.", title)
        self.firstname = firstname
        self.lastname = lastname
    
    def fullname(self):
        '''Returns the full name of the person'''
        return self.firstname + ' ' + self.lastname
    
John = Person('Mister','John','Doe') # this will create an error

class Employee:
   '''Common base class for all employees'''

   empCount = 0
    
   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1
   
   def displayCount(self):
     print("Total Employee %d",Employee.empCount)

   def displayEmployee(self):
      print("Name : ", self.name,  ", Salary: ", self.salary)

"This would create first object of Employee class"
emp1 = Employee("Zara", 2000)
"This would create second object of Employee class"
emp2 = Employee("Manni", 5000)
emp1.displayEmployee()
emp2.displayEmployee()
print("Total Employee ", Employee.empCount)