python - 为什么我们在 python 类中使用 super()?
问题描述
我遇到了一个像下面这样的例子,
class Model(tf.keras.Model):
def __init__(self, vocab_size, embedding_dim, dim, batch_sz):
super(Model, self).__init__()
self.dim = dim
self.embedding = Embedding(vocab_size, embedding_dim)
self.lstm = LSTM(self.enc_units,
recurrent_initializer='glorot_uniform')
在这我们为什么使用super(Encoder, self).__init__()
?我对使用 python 的面向对象编程不是很熟悉。
解决方案
由于您从此处的 parenthasies 中的另一个类继承,因此在某些情况下还必须初始化class Model(tf.keras.Model):
父类或超类。由于您有两个__init__
函数可以知道您正在访问哪个函数,因此 super 用于说使用父类__init__
方法。
推荐阅读
- python - 使用python解析HTML + CSS时获取标签中文本大小的最佳方法是什么?
- android - 当我单击按钮时,Android 回收站视图未更新
- r - 对具有相同名称的列求和
- haskell - 单子的运算符关联性、关联律和值依赖性如何结合在一起?
- .htaccess - .htaccess 并按大小写区分查询字符串
- java - Apache POI,在同一行中将文本左对齐,其他文本右对齐
- r - 根据动态列数和名称对数据框进行子集化
- python - 从txt文件中提取数据
- c++11 - 多重定义错误(collect2:error:ld returned 1 exit status)
- java - 飞溅前的Android白屏