|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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啊
1 你可以试试在后面继续
del a
del b
2 本来就没有执行if里面的语句
|
|