Python内部类中的继承
类是用户定义的蓝图或原型,从中创建对象。类提供了一种将数据和功能捆绑在一起的方法。创建一个新类会创建一种新类型的对象,允许创建该类型的新实例。每个类实例都可以附加属性以维护其状态。类实例也可以具有用于修改其状态的方法(由其类定义)。
内部类或嵌套类是在另一个类的主体内定义的。如果使用类创建对象,则可以使用根类中的对象。一个类可以有一个或多个内部类。内部类或嵌套类在许多方面帮助用户,例如类的逻辑分组,更具可读性和易于维护等。
例如,考虑一个类 DOB 位于另一个类 Person 中的情况,请参见下面的代码片段。
class person:
def __init__(self):
self.name = 'AKASH'
self.db = self.Dob() #this is Dob object
在前面的代码中,'db.'表示内部类对象。创建外部类对象时,它包含一个作为内部类对象的子对象。因此,我们可以将外部类和内部类成员称为:
p = person() #create outer class object
p.display() #call outer class method
x = p.db #create inner class object
x.display() #call inner class method
例子:
# Python program to demonstrate
# inner class
class person:
def __init__(self):
self.name = 'AKASH'
self.db = self.Dob()
def display(self):
print('NAME = ', self.name)
# this is inner class
class Dob:
def __init__(self):
self.dd = 10
self.mm = 3
self.yy = 2000
def display(self):
print('DOB = {}/{}/{}'.format(self.dd, self.mm, self.yy))
# creating person class object
p = person()
p.display()
# create inner class object
x = p.db
x.display()
输出:
NAME = AKASH
DOB = 10/3/2000
内部类的继承
继承是一个类从另一个类派生或继承属性的能力。继承的好处是:
- 它很好地代表了现实世界的关系。
- 它提供了代码的可重用性。我们不必一次又一次地编写相同的代码。此外,它允许我们在不修改类的情况下向类添加更多功能。
- 它本质上是可传递的,这意味着如果类 B 继承自另一个类 A,那么 B 的所有子类将自动继承自类 A。
要在内部类中使用继承,请考虑以下代码片段。
# Python program to demonstrate
# inheritance in inner class
class A:
def __init__(self):
self.db = self.Inner()
def display(self):
print('In Parent Class')
# this is inner class
class Inner:
def display1(self):
print('Inner Of Parent Class')
class B(A):
def __init__(self):
print('In Child Class')
super().__init__()
class Inner(A.Inner):
def display2(self):
print('Inner Of Child Class')
# creating child class object
p = B()
p.display()
# create inner class object
x = p.db
x.display1()
x.display2()
输出:
In Child Class
In Parent Class
Inner Of Parent Class
Inner Of Child Class
在上面的例子中,B类继承自A,B的内部类继承A的内部类。然后从孩子的内部类对象调用Parent'Inner类的类方法。