鱼C论坛

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

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

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

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

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

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


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

我的代码如下:

  1. class FileObject:
  2.         def __init__(self,filename='Turtle.py'):
  3.                 self.filename=filename
  4.                 self.f=open(self.filename,'r+')
  5.                 print self.f.read()


  6.         def __del__(self):
  7.                 self.f.close()
  8.                 del self.f

  9. a=FileObject()
  10. b=a
  11. c=b
  12. del c

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

  14. class Nint(int):
  15.         def __new__(cls,string):
  16.                 if isinstance(string,str):
  17.                         total=0
  18.                         for each in string:
  19.                                 total+=ord(each)
  20.                                 string=total
  21.                 print int.__new__(cls,string)

  22. 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
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

2 本来就没有执行if里面的语句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

不能
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 00:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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