鱼C论坛

 找回密码
 立即注册
查看: 1500|回复: 4

[已解决]零基础学python041讲 动动手0和动动手2

[复制链接]
发表于 2018-4-8 18:10:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
动动手0:写一个FileObject类,给文件对象进行包装,从而确认在删除对象时文件能自动关闭。


动动手2:定义一个类继承int,实现一个特殊功能,当传人的参数为字符串时,返回字符串的所有字符的ascii码和。

我的代码如下:
class FileObject:
        def __init__(self,filename='Turtle.py'):
                self.filename=filename
                self.f=open(self.filename,'r+')
                print self.f.read()


        def __del__(self):
                self.f.close()
                del self.f

a=FileObject()
b=a
c=b
del c

print '我是一条分割线================ '

class Nint(int):
        def __new__(cls,string):
                if isinstance(string,str):
                        total=0
                        for each in string:
                                total+=ord(each)
                                string=total
                print int.__new__(cls,string)

a=Nint(123)

运行结果如图所示

(1)想知道为什么__del__()方法只执行了 del c语句,而没有del c,del b,del a 时这个文件到底关闭了没?还有 del c,del b,del a这三个语句的顺序有关系吗
(2)为什么 123也能被执行不报错,因为 if isinstance(123,str)=False啊
最佳答案
2018-4-8 18:25:54
1  你可以试试在后面继续
del a   
del b

2 本来就没有执行if里面的语句
屏幕快照 2018-04-08 下午6.06.52.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-8 18:25:54 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
1  你可以试试在后面继续
del a   
del b

2 本来就没有执行if里面的语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-23 16:20:10 | 显示全部楼层
BngThea 发表于 2018-4-8 18:25
1  你可以试试在后面继续
del a   
del b

您好  请问 第一题文件的那个题目,我通过del对象调用了 __del__魔法方法。问题是 此刻已通过del讲对象删除,那这样的话,还可以执行 __del__魔法方法中对该对象实例属性的文件关闭和删除操作吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 15:43:19 | 显示全部楼层
jiajiaself 发表于 2019-12-23 16:20
您好  请问 第一题文件的那个题目,我通过del对象调用了 __del__魔法方法。问题是 此刻已通过del讲对象删 ...

不能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-31 20:02:36 | 显示全部楼层
你好,我想问一下动动手0中最后一行代码" del self.f " 起什么作用?删除文件不是在外部进行的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 22:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表