马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 bio911 于 2023-8-10 14:19 编辑
书上162页12.1.3 __del__(self)例子的代码>>>class C:
def __init__(self):
print("我是__init__方法,我被调用了...")
def __del__(self):
print("我是__del__方法,我被调用了...")
>>>c1 = C ( )
我是__init__方法,我被调用了...
>>>c2 = c1
>>>c3 = c2
>>>del c1
>>>del c2
>>>del c3
我是__del__方法,我被调用了...
复制到PyCharm Community Edition运行(复制代码如下)class C:
def __init__(self):
print("我是__init__方法,我被调用了......")
def __del__(self):
print("我是__del__方法,我被调用了.......")
c1 = C()
结果运行直接就是:
我是__init__方法,我被调用了......
我是__del__方法,我被调用了.......
我的问题是书上代码到“c1 = C ( )”这一步时,结果是“我是__init__方法,我被调用了...”
为什么我用PyCharm Community Edition到“c1 = C( )”这一步时,结果是“我是__init__方法,我被调用了......我是__del__方法,我被调用了.......”
很正常,因为 pycharm 中程序运行完会退出,变量也被销毁,而 Shell 中你退出时你看不见输出
另外只显示一次的原因是,c1、c2、c3都指向同一个内容,c1、c2没了还有c3
|