46讲的动动手第一题修改记录问题
为什么仅记录对 x,y的修改和读取?而对于另外添加的z不记录呢?>>> class Test:
x = Record(10,'x')
y = Record(8.8,'y')
>>> test = Test()
>>> test.x
10
>>> test.x =1
>>> test.x
1
>>> test.z = 'sun'
>>> test.z
'sun'
>>> test.y = 'sun'
>>> test.y
'sun'
x 变量于北京时间 Thu Oct5 19:34:01 2017 被读取,x = 10
x 变量于北京时间 Thu Oct5 19:34:10 2017 被修改, x = 1
x 变量于北京时间 Thu Oct5 19:34:12 2017 被读取,x = 1
x 变量于北京时间 Thu Oct5 19:34:37 2017 被读取,x = 10
x 变量于北京时间 Thu Oct5 19:34:39 2017 被修改, x = 1
x 变量于北京时间 Thu Oct5 19:34:42 2017 被读取,x = 1
y 变量于北京时间 Thu Oct5 19:35:01 2017 被修改, y = sun
y 变量于北京时间 Thu Oct5 19:35:07 2017 被读取,y = sun
就看你的代码来说
修改哪个应该是看心情 新手·ing 发表于 2017-10-5 21:11
就看你的代码来说
修改哪个应该是看心情
x,y还是按照要求来的,这只是运行的代码,程序代码就是小甲鱼给出的 驻火蚁 发表于 2017-10-5 21:20
x,y还是按照要求来的,这只是运行的代码,程序代码就是小甲鱼给出的
没有需求,改哪个都行 驻火蚁 发表于 2017-10-5 21:20
x,y还是按照要求来的,这只是运行的代码,程序代码就是小甲鱼给出的
把代码发上来 新手·ing 发表于 2017-10-5 21:25
把代码发上来
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 新手·ing 发表于 2017-10-5 21:25
把代码发上来
为什么test.z在Test类里面没有实例化,还照样可以test.z = 'sun',并且可以删除呢? 驻火蚁 发表于 2017-10-6 09:21
等下 你只是给了个z
但是并没有实例化
新手·ing 发表于 2017-10-6 09:28
你只是给了个z
但是并没有实例化
那为什么照样还可以给z赋值,然后读取,删除z这个属性呢? 驻火蚁 发表于 2017-10-6 09:30
那为什么照样还可以给z赋值,然后读取,删除z这个属性呢?
下面没有显示z被修改被读取吧 驻火蚁 发表于 2017-10-6 09:30
那为什么照样还可以给z赋值,然后读取,删除z这个属性呢?
这个是本身就可以的把 新手·ing 发表于 2017-10-6 09:35
这个是本身就可以的把
傻了,傻了{:5_95:} 多谢
页:
[1]