一 概念
继承是面向对象编程中的一个重要概念,它允许我们创建一个新类,并从一个或多个现有类中继承属性和方法。
二 代码实例
在Python中,class A(B)表示类A继承自类B。这意味着类A将继承类B的属性和方法,并且可以在类A中使用它们。
"""
定义了两个类,类B和类A。
类B有一个构造函数和一个方法,类A继承自类B,并且类A也有一个构造函数和一个方法。
"""
# 定义了类B
class B:
# 定义B的构造函数
def __init__(self):
# 给实例变量name赋值为字符串"B"
self.name = "B"
# 定义了类B的方法method,会打印出"This is a method from class B"。
def method(self):
print("This is a method from class B")
# 定义了类A,它继承自类B
class A(B):
# 定义A的构造函数
def __init__(self):
# 调用父类B的构造函数
super().__init__()
# 给实例变量age赋值为整数20
self.age = 20
# 定义了类A的方法method,先通过super().method()调用了父类B的方法,然后打印"This is a method from class A"。
def method(self):
super().method() # 调用父类B的方法
print("This is a method from class A")
# 创建了一个类A的实例对象a
a = A()
print(a.name) # 输出:B
print(a.age) # 输出:20
a.method()
# 输出:This is a method from class B
# This is a method from class A
三 class Net(torch.nn.Module)
# 定义的神经网络模型类Net,继承自nn.Module
# nn.Module是PyTorch中所有神经网络模型的基类
class Net(nn.Module):
# 构造函数,用于初始化类的实例,in_planes和num_classes是构造函数的参数
def __init__(self, in_planes,num_classes):
# super()函数用于调用父类的方法。
# super(Net, self)表示调用父类Net的方法。
# __init__()是父类的构造方法,通过调用super().__init__()来执行父类的构造方法,以确保父类的初始化代码也被执行。
super(Net, self).__init__()
self.in_planes = in_planes
self.num_classes = num_classes
self.conv1 = nn.Conv2d(in_planes, 32, 3,2, 0, bias=False)
self.bn1 = nn.BatchNorm2d(32)
self.relu = nn.ReLU(inplace=True)