顺德网站优化,wordpress嵌入代码,wordpress新闻页面一键分享,全国公路建设信用网站文章目录 1 在 Java 中#xff1a;2 在 Python 中#xff1a; 在 Java 和 Python 中#xff0c;子类调用父类方法的语法略有不同#xff1a;
1 在 Java 中#xff1a;
使用 super 关键字#xff1a;在子类中#xff0c;可以使用 super 关键字来调用父类的方法。super … 文章目录 1 在 Java 中2 在 Python 中 在 Java 和 Python 中子类调用父类方法的语法略有不同
1 在 Java 中
使用 super 关键字在子类中可以使用 super 关键字来调用父类的方法。super 关键字可以用来引用父类的构造方法或普通方法。
调用父类构造方法在子类的构造方法中使用 super() 调用父类的构造方法。例如
public class Child extends Parent {public Child() {super(); // 调用父类的无参构造方法java里面这种无参构造java虚拟机就算你不写也会自动加上super(参数); // 调用父类的有参构造方法}
}如果父类有带参数的构造方法可以通过 super(参数) 的形式传递参数给父类构造方法。
调用父类普通方法在子类中可以使用 super.方法名() 的形式调用父类的普通方法。例如
public class Parent {public void printMessage(参数) {System.out.println(Hello from Parent);}
}public class Child extends Parent {public void printMessage() {super.printMessage(参数); // 调用父类的 printMessage 方法System.out.println(Hello from Child);}
}
2 在 Python 中
使用 super() 函数Python 中的子类可以使用 super() 函数来调用父类的方法。super() 函数用于获取父类的对象并且可以调用父类的方法。
调用父类构造方法在子类的 init 方法中使用 super().init() 来调用父类的构造方法。例如
class Parent:def __init__(self):print(Parent initialized)class Child(Parent):def __init__(self):super().__init__(参数) # 调用父类的构造方法print(Child initialized)调用父类普通方法同样地在子类中可以使用 super().方法名() 的形式调用父类的普通方法。例如
class Parent:def print_message(self):print(Hello from Parent)class Child(Parent):def print_message(self):super().print_message() # 调用父类的 print_message 方法print(Hello from Child)另外在pytorch搭建网络还延续了Python2的super(当前类self)使用习惯在 Python 2 中super 需要传递两个参数当前类和 self 对象。但现在Python3这种语法已经可以抛弃了直接super()后面空括号就可以了但pytorch大家搭建网络都还延续了Python2的那个习惯就随大流吧
class RNN(nn.Module):def __init__(self):super(RNN, self).__init__() # super().__init__() python3现在只需要这样self.rnn nn.LSTM( # if use nn.RNN(), it hardly learnsinput_sizeINPUT_SIZE,hidden_size64, # rnn hidden unitnum_layers1, # number of rnn layerbatch_firstTrue, # input output will has batch size as 1s dimension. e.g. (batch, time_step, input_size))self.out nn.Linear(64, 10)def forward(self, x):# x shape (batch, time_step, input_size)# r_out shape (batch, time_step, output_size)# h_n shape (n_layers, batch, hidden_size)# h_c shape (n_layers, batch, hidden_size)r_out, (h_n, h_c) self.rnn(x, None) # None represents zero initial hidden state# choose r_out at the last time stepout self.out(r_out[:, -1, :])return out