盘点一个面向对象的类变量和实例变量问题

IT共享之家

共 1019字,需浏览 3分钟

 ·

2022-04-28 23:04

点击上方“Python共享之家”,进行关注

回复“资源”即可获赠Python学习资料

离离原上草,一岁一枯荣。

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个Python基础问题,这里拿出来给大家分享下,一起学习下。

题目代码如下:

class A:
    var = 1
    def __init__(self):
        self.x = 1
    def get_var():
        return A.var
 
class B(A):
    new_var = 1
    def __init__(self):
        super().__init__()
 
b = B()

二、解决过程

这个问题挺基础的,看上去确实也不难。她就是想问hasattr(B, 'x') return True or False ?,而这里输出的结果是False

这里【月神】给出了一个实例代码,帮助理解。

还有一个补充。

其实这个题目就是在考察类变量和实例变量的问题,关于这个问题的文章,之前也发过好几篇文章了。

a = A()
a.x

上面的代码是可以的。

后来【冷喵】给出了一个接地气的说法,不带括号它是个类,带了是个实例。

这样的话,理解起来就简单很多了。

不过话说回来,面向对象的东西,确实是有些绕的,连大佬们都觉得有点难。

三、总结

大家好,我是皮皮。这篇文章主要分享了一个面向对象的类变量和实例变量问题,针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

最后感谢粉丝【Chloe】提问,感谢【月神】、【冷喵】给出的具体解析和代码演示,感谢【dcpeng】、【瑜亮老师】、【沈复】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【

万水千山总是情,点个【在看】行不行

浏览 38
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报