小伤口 发表于 2020-12-10 18:27:58

python第46讲课后题

import time

class Record:
    def __init__(self, initval=None, name=None):
      self.val = initval
      self.name = name
      self.filename = "record.txt"

    def __get__(self, instance, owner):
      with open(self.filename, 'a', encoding='utf-8') as f:
            f.write("%s 变量于北京时间 %s 被读取,%s = %s\n" % \
                  (self.name, time.ctime(), self.name, str(self.val)))
      return self.val

    def __set__(self, instance, value):
      filename = "%s_record.txt" % self.name
      with open(self.filename, 'a', encoding='utf-8') as f:
            f.write("%s 变量于北京时间 %s 被修改, %s = %s\n" % \
                  (self.name, time.ctime(), self.name, str(value)))
      self.val = value
with open(self.filename, 'a', encoding='utf-8') as f:这段代码的意思是啥呀,with是干嘛用的呀
谢谢各位大佬{:10_266:}

梦回连营 发表于 2020-12-10 18:48:34

a是open的一个属性,是以可添加的模式打开文件,之后的代码可以对文件进行写入。
平常的open函数打开文件之后要自己再写一行代码关上文件,不然会占用计算机内存,而用with open的时候就不怕忘记写关闭文件程序而耗费内存了,电脑会自动检测,在你没有使用这个文件之后就会自动关闭文件

小伤口 发表于 2020-12-10 18:49:46

梦回连营 发表于 2020-12-10 18:48
a是open的一个属性,是以可添加的模式打开文件,之后的代码可以对文件进行写入。
平常的open函数打开文件 ...

谢谢,懂了,懂了{:10_297:}
页: [1]
查看完整版本: python第46讲课后题