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

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

大家好,我是皮皮。


一、前言

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

image.png

题目代码如下:

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

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

image.png

还有一个补充。

image.png

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

a = A()
a.x

上面的代码是可以的。

image.png

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

image.png

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

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

image.png


三、总结


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


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


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


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

相关文章
|
1月前
|
存储 Java
静态变量与实例变量的区别
【10月更文挑战第15天】总之,静态变量和实例变量在 Java 中具有不同的特性和用途。理解它们的区别对于正确设计和编写代码至关重要。
|
22天前
|
Java
静态变量和实例变量区别
静态变量: 静态变量由于不属于任何实例对象,属于类的,所以在内存中只会有一份,在类的加载过程中,JVM只为静态变量分配一次内存空间。 实例变量: 每次创建对象,都会为每个对象分配成员变量内存空间,实例变量是属于实例对象的,在内存中,创建几次对象,就有几份成员变量。
|
4月前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
81 4
|
6月前
类与对象\静态成员
类与对象\静态成员
27 0
|
7月前
|
存储 Java 编译器
Java面向对象编程:成员变量与局部变量
Java面向对象编程:成员变量与局部变量
54 0
|
7月前
|
存储
成员变量和类变量的区别:
成员变量和类变量的区别:
117 0
|
7月前
|
C++
c++类和对象一静态成员的讲解
c++类和对象一静态成员的讲解
45 0
c++类和对象一静态成员的讲解
|
存储 编译器 C语言
C++:类和对象(上)---初步认识类和this指针
C++:类和对象(上)---初步认识类和this指针
类与对象:静态成员
类与对象:静态成员
83 0
|
C++
类和对象中类对象作为类成员
类和对象中类对象作为类成员
65 0