Python 中的内部类
A Python 是一种面向对象的编程语言,Python 中的一切都与对象、方法和属性有关。类是用户定义的蓝图或原型,我们可以用它来创建类的对象。该类是使用 class 关键字定义的。
类示例–
# create a Geeksforgeeks class
class Geeksforgeeks :
gfg = 10
首先我们要了解 init() 内置的理解类含义的方法。每当类被启动时,总是会执行一个方法,即 init()方法。init()方法用于将值分配给对象属性,或者执行创建对象时需要完成的其他方法。
带有 init()方法的类示例–
# create a Geeksforgeeks class
class Geeksforgeeks:
# constructor method
def __init__(self):
# object attributes
self.course = "Campus preparation"
self.duration = "2 months"
# define a show method
# for printing the content
def show(self):
print("Course:", self.course)
print("Duration:", self.duration)
# create Geeksforgeeks
# class object
outer = Geeksforgeeks()
# method calling
outer.show()
输出:
Course : Campus Preparation
Duration : As per your schedule
Python 中的内部类
在另一个类中定义的类称为内部类或嵌套类。如果一个对象是使用子类创建的,意味着内部类,那么该对象也可以被父类或根类使用。父类可以有一个或多个内部类,但通常避免使用内部类。
通过使用内部类,我们可以使我们的代码更加面向对象。该类的单个对象可以容纳多个子对象。我们可以使用多个子对象来给我们的程序一个好的结构。
示例–
首先我们创建一个类,然后创建该类的构造函数。
在创建一个类之后,我们将在该类中创建另一个类,另一个类中的类将被称为内部类。
# create a Color class
class Color:
# constructor method
def __init__(self):
# object attributes
self.name = 'Green'
self.lg = self.Lightgreen()
def show(self):
print("Name:", self.name)
# create Lightgreen class
class Lightgreen:
def __init__(self):
self.name = 'Light Green'
self.code = '024avc'
def display(self):
print("Name:", self.name)
print("Code:", self.code)
# create Color class object
outer = Color()
# method calling
outer.show()
# create a Lightgreen
# inner class object
g = outer.lg
# inner class method calling
g.display()
输出:
Green
Name:Green
Light Green
023gfd
Name: Light Green
Code: 023gfd
为什么是内班?
用于两个或多个类的分组。假设我们有两类遥控器和电池。每个遥控器都需要电池,但是没有遥控器的电池就不能用了。因此,我们将电池作为遥控器的内部类别。它帮助我们保存代码。
借助于内部类或嵌套类,我们可以对外部世界隐藏内部类。因此,隐藏代码是内部类的另一个好特性。
通过使用内部类,我们可以很容易地理解类,因为类是密切相关的。我们不需要在整个代码中搜索类,它们几乎都在一起。
虽然内部类或嵌套类在 Python 中没有被广泛使用,但是实现代码将是一个更好的特性,因为当我们使用内部类或嵌套类时,它会直接组织起来。
语法:
# create NameOfOuterClass class
class NameOfOuterClass:
# Constructor method of outer class
def __init__(self):
self.NameOfVariable = Value
# create Inner class object
self.NameOfInnerClassObject = self.NameOfInnerClass()
# create a NameOfInnerClass class
class NameOfInnerClass:
# Constructor method of inner class
def __init__(self):
self.NameOfVariable = Value
# create object of outer class
outer = NameOfOuterClass()
内部类的类型–
- 多重内部类
- 多级内部类
多重内部类
该类包含一个或多个内部类,称为多个内部类。我们可以在一个类中有多个内部类,很容易实现多个内部类。
多个内部类示例–
# create outer class
class Doctors:
def __init__(self):
self.name = 'Doctor'
self.den = self.Dentist()
self.car = self.Cardiologist()
def show(self):
print('In outer class')
print('Name:', self.name)
# create a 1st Inner class
class Dentist:
def __init__(self):
self.name = 'Dr. Savita'
self.degree = 'BDS'
def display(self):
print("Name:", self.name)
print("Degree:", self.degree)
# create a 2nd Inner class
class Cardiologist:
def __init__(self):
self.name = 'Dr. Amit'
self.degree = 'DM'
def display(self):
print("Name:", self.name)
print("Degree:", self.degree)
# create a object
# of outer class
outer = Doctors()
outer.show()
# create a object
# of 1st inner class
d1 = outer.den
# create a object
# of 2nd inner class
d2 = outer.car
print()
d1.display()
print()
d2.display()
输出:
In outer class
Name: Doctor
In inner class 1
Name: Dr. Savita
Degree: BDS
In inner class 2
Name: Dr. Amit
Degree: DM
多级内部类
该类包含内部类,而该内部类又包含另一个内部类,这种层次结构称为多级内部类。
多级内部类示例–
# create a outer class
class Geeksforgeeks:
def __init__(gfg):
# create a inner class object
self.inner = self.Inner()
def show(gfg):
print('This is an outer class')
# create a 1st inner class
class Inner:
def __init__(self):
# create a inner class of inner class object
self.innerclassofinner = self.Innerclassofinner()
def show(self):
print('This is the inner class')
# create a inner class of inner
class Innerclassofinner:
def show(self):
print()
def show(self):
print('This is an inner class of inner class')
# create a outer class object
# i.e.Geeksforgeeks class object
outer = Geeksforgeeks()
outer.show()
print()
# create a inner class object
gfg1 = outer.inner
gfg1.show()
print()
# create a inner class of inner class object
gfg2 = outer.inner.innerclassofinner
gfg2.show()
输出:
这是一个外班
这是一个内部类
这是一个内部类,内部类意味着多级内部类
版权属于:月萌API www.moonapi.com,转载请注明出处