Python中文
首页
教程
问答
标签
搜索
登录
注册
Python父类访问子类的类变量
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我目前正试图在我的Python项目中实现一些继承,但遇到了障碍。我试图创建一个baseParentClass来处理许多子类的基本功能。在这个特定的例子中,我试图用一些属性(设置为0)初始化一个实例,这些属性作为类变量列表(称为ATTRS)存储在子类中。我不确定如何在父类中使用这个ATTRS。</p> <pre><code>class Parent(object): def __init__(): for attr in ATTRS: setattr(self, attr, 0) class Child(Parent): #class variable ATTRS = [attr1, attr2, attr3] def __init__(): super(Child, self).__init__() </code></pre> <p>我可以将ATTRS作为self.ATTRS存储在Child中,然后在Parent中成功地使用self.ATTRS,但对我来说,将它们存储为类变量似乎更好。</p> <p>或者,我可以将ATTRS作为如下参数传递:</p> <pre><code>class Child(Parent): #class variable ATTRS = [attr1, attr2, attr3] def __init__(): super(Child, self).__init__(ATTRS) </code></pre> <p>但我想知道这是否会在一开始就破坏了使用继承的意义?</p> <p>我会感谢任何想法,暗示或反馈,无论我是在找错树完全!</p> <p>谢谢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>加上上面的答案</p> <p>虽然ATTR是子类中的类变量,但子类的实例变量能够访问类变量ATTR,因为Python使用名称空间执行以下操作</p> <ol> <li>为ATTR变量检查实例的命名空间(self.<strong>dict</strong>)。</li> <li>如果上述操作失败,则它将检查其类的命名空间。因此它能够获得类变量的值,尽管它是使用实例变量访问的。</li> </ol>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何将Python中的列表复制到给定的目标中?
4 回答
如何将python中的列表插入SQL表
5 回答
如何将python中的列表转换为numpy数组以放入十位
7 回答
如何将python中的列表输入javascript?
10 回答
如何将python中的列表返回给dag?
6 回答
如何将Python中的列表项重新排列成成对的元组/列表?
4 回答
如何将Python中的初始化对象序列化为XML?
1 回答
如何将python中的十进制字符串转换为数字?
3 回答
如何将Python中的原始输入文本转换为Tkinter中的标签?
3 回答
如何将python中的反斜杠命令转换为在Linux上运行
8 回答
如何将python中的命令行参数转换为字典?
1 回答
如何将python中的图像值传递到kivy中的kv文件?
10 回答
如何将Python中的图像数组(枕头对象)上传到Google云
7 回答
如何将Python中的图像编码为Base64?
5 回答
如何将python中的图像调整为灰度低分辨率,如MNIST时尚数据?
9 回答
如何将python中的多个html输出保存到单个文件(或多个)中?
10 回答
如何将Python中的多个ifelse语句重构为一个函数?
4 回答
如何将Python中的多处理与Django结合使用,从xml文件创建数千个模型实例?
6 回答
如何将python中的多级API响应转换为dataframe
5 回答
如何将python中的多线程编程模型转换为异步/等待模型?
2 回答