class - OOPs 概念如何与内存相关?和构造函数?
问题描述
我将使用 python 作为示例。我写下一部分只是为了确认它。我知道类是对象的蓝图的基础知识。但是,如果我们在 python 中打印对象,它们会在该对象的内存中打印一个地址(希望我到现在为止)或该对象在内存中的存储位置。当我们不想打印某个对象的地址时,我们使用str () 方法来表示该对象。
现在主要的问题是构造函数是如何工作的?以及类变量、类和构造函数是如何存储在内存中的,以及它们是如何获取的?
这是一个简单的类示例:
Class A:
def __init__(self): // constructor
print('In A Constructor')
print(A())
print(A.__init__(A))
上面代码的输出是这样的:在构造函数中“构造函数返回的对象值”在构造函数中无
现在前 2 行是非常常见和预期的行为,但问题是接下来的 2 行。构造函数如何使用类名?类名(此处为“A”)指的是什么。这是什么意思?它应该是存储它的类的内存位置。而我们的构造函数将 self 作为参数,这意味着只有类的实例。而且由于我们的 Class 构造函数返回 None 那么这意味着那里没有实例,所以如果我创建一些实例变量会发生什么。
所以我在构造函数中添加了这两行:
self.var= 10
print(self.var)
在普通构造函数中,它给出了 10 作为输出,但在另一个构造函数中,它没有给出任何错误,也没有打印 10 作为输出。似乎另一个将其作为类变量。
那么类名是什么意思,它在内存中代表什么?像 Class parent_class:如果我们打印它,'parent_class' 是什么意思?'parent_class()'是什么意思?构造函数从哪里获取它的自我?类变量是否存储在类对象中?就像这里他们将在'parent_class'中。
解决方案
推荐阅读
- rabbitmq - 对于高消息量,为什么对于同一条消息,我在 rabbitmq 中收到 frame_size 错误?
- android - 通过接收纬度和经度在地图上添加标记另一个活动
- java - 如何存储/排队要保存的多张照片以使它们都可以离线使用?
- javascript - 如何在不丢失选项“value=”功能的情况下限制数据列表选项?
- android - 对于 Windows,Gradle 文件路径太长
- javascript - 什么是 JavaScript 的 CompositionEvent?请举例
- node.js - Nodejs不会将散列密码保存到mysql db
- c# - 带逗号的TextBox变成sql
- python - Python:从库中随机选择抽认卡游戏的密钥
- javascript - 单击时突出显示表格(css/html)上的单元格