'How do I define a name in python?

Whenever I run my code I get: NameError: name 'Object_Oriented_Programming' is not defined

How do I define the name Object_Oriented_Programming?

Code:

class Object_Oriented_Programming:
    
    class Inheritance():
        def __init__(self, name, age):
            self.name = name
            self.age = age

        class SchoolMember():
            '''Represents any school member.'''

            def __init__(self, name, age):
                self.name = name
                self.age = age
                print('(Initialized SchoolMember: {})'.format(self.name))

            def tell(self):
                '''Tell my details.'''
                print('Name:"{}" Age:"{}"'.format(
                    self.name, self.age), end=" ")

        class Teacher(SchoolMember):
            '''Represents a teacher.'''

            def __init__(self, name, age, salary):
                Object_Oriented_Programming.Inheritance.SchoolMember.__init__(
                    self, name, age)
                self.salary = salary
                print('(Initialized Teacher: {})'.format(self.name))

            def tell(self):
                Object_Oriented_Programming.Inheritance.SchoolMember.tell(self)
                print('Salary: "{:d}"'.format(self.salary))


Solution 1:[1]

As far as I am concerned about the code, I ran it on the terminal and there wasn't any issue, it simple executed and nothing showed up as nothing was printed.

Now, If you really want to know how to define an object in oops in Python, here is the way to do it:

  1. First instead of creating a class inside a class, you should just create one class and then write __init__ method including all things such as name or age.
  2. When do with this, you can then make a new variable at the end and put that = the class name (the name, age). for example, I have attached an img to show you a piece of code.

Code

Solution 2:[2]

code :

        class train:
    def __init__(self, name, fare, seats, code):
        self.name = name
        self.fare = fare
        self.seats = seats
        self.code = code

    def train_Status(self):
        print(f"The name of the train is {self.name}")
        print(f"The seats is {self. seats}")

    def fare_Info(self):
        print(f"The fare is {self. fare}")

    def code_Info(self):
        print(f"The code is {self. code}")

    def tickets_Info(self):
        if(self.seats > 0):
            print(
                f"The seats are available for you...\nYour seat number is {self.seats}")
            self.seats = self.seats - 1
        elif(self.seats == 0):
            print("The seats are not available for you...")
        else:
            print("The server isnt updated yet. \nPlease try again later.")

    @staticmethod
    def greeting():
        print("Welcome to Rajdhani express!!")


Inter = train("Inter Express", 180, 12, 239340)
Inter.greeting()
Inter.fare_Info()
Inter.train_Status()
Inter.tickets_Info()
Inter.train_Status()
Inter.code_Info()

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Tomerikoo
Solution 2 Sagar Rai