yizhancs 发表于 2021-9-9 16:51:41

构造与析构

class C:
    def __init__(self):
       print("我是__init__方法,我被调用了")
    def __del__(self):
       print("我是__del__方法,我被调用了")
a=C()

为什么会是这样显示的?在教学视频中不是不会显示下面那行吗?使用的是Pycharm
我是__init__方法,我被调用了
我是__del__方法,我被调用了

傻眼貓咪 发表于 2021-9-9 17:20:17

這只是要讓你真正知道 __init__ 的用意,不建議這麼寫代碼(正常情況下 __init__ 下方應該是初始化語句,不該返回值)
如你所說,為什麼顯示了兩行:
我是__init__方法,我被调用了
我是__del__方法,我被调用了
因為你把 class C 當函數在用了
如:
class Demo:
    def __init__(self):
      print('调用__init__方法')

    def func(self):
      print('这是一个普通的方法')

d = Demo()调用__init__方法

逃兵 发表于 2021-9-9 17:25:32

idle是交互式的,执行完这个py,没有退出

pycharm是执行脚本,执行完成之后,因为脚本结束,被释放了
页: [1]
查看完整版本: 构造与析构