前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >盘点一个面向对象的类变量和实例变量问题

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

作者头像
前端皮皮
发布2022-08-17 17:08:23
发布2022-08-17 17:08:23
66800
代码可运行
举报
运行总次数:0
代码可运行

大家好,我是皮皮。

一、前言

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

题目代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
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

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

还有一个补充。

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

代码语言:javascript
代码运行次数:0
运行
复制
a = A()
a.x

上面的代码是可以的。

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

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

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

三、总结

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、解决过程
  • 三、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档