Андрей-Чжун 2023-01-04 15:32 采纳率: 50%
浏览 21
已结题

关于python类的问题

实例化之后为什么打印的结果有的是一样的 有的是不一样的?
1.为什么分开print输出和在一个print里输出的结果不一样?

print(a(1))
print(b(1))
print(c(1))
print(a(1), b(1), c(1), sep="\n")


#输出:
#<__main__.Test1 object at 0x000001B74DA95288>
#<__main__.Test2 object at 0x000001B74DA95288>
#<__main__.Test3 object at 0x000001B74DA95288>
#<__main__.Test1 object at 0x000001B74DA95288>
#<__main__.Test2 object at 0x000001B74DA95348>
#<__main__.Test3 object at 0x000001B74DA95308>

2.为什么下面这种方式的实例化和上面1中实例化输出的结果不一致

print(d, e, f, sep="\n")

#输出:
#<__main__.Test1 object at 0x000001B74DA95288>
#<__main__.Test2 object at 0x000001B74DA95348>
#<__main__.Test3 object at 0x000001B74DA95308>

完整脚本


# -*- coding: utf-8 -*-

class Test1:
    def __init__(self, x):
        self.x = x
    def outprint(self):
        return self.x

class Test2:
    def __init__(self, x):
        self.x = x
    def outprint(self):
        return self.x

class Test3(object):
    def __init__(self, x):
        self.x = x
    def outprint(self):
        return self.x

a = Test1
b = Test2
c = Test3
print(a, b, c, sep="\n")
print(a(1))
print(b(1))
print(c(1))
print(a(1), b(1), c(1), sep="\n")

d = Test1(1)
e = Test2(1)
f = Test3(1)
print(d, e, f, sep="\n")

  • 写回答

3条回答 默认 最新

  • 於黾 2023-01-04 16:10
    关注

    你为什么要纠结每个类占用什么地址
    outprint函数定义了但是根本没有用上呀
    你一个类实例化之后就丢弃了,没有变量来承接它,那它的内存当然就被后续的实例给复用了
    而如果一个print里同时实例3个对象,那当然是没法复用的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 创建了问题 1月4日

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?