大家好,我是皮皮。
一、前言
前几天在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 -------------------