hehe210417 发表于 2020-4-29 17:51:45

044魔方方法:简单定制,怎么在类里面引用实例化后对象名字的问题

>>>t1=MyTime()
>>>t1.start()
计时开始……
>>>t1.stop()
计时结束……
>>>t1
总共运行了14秒


怎么修改一下,能修改成让显示成:t1运行了14秒

zltzlt 发表于 2020-4-29 17:53:41

把你类定义的代码发过来

hehe210417 发表于 2020-4-29 17:56:09

我现在用的是手机发的求助,电脑上不了外网啊,就是按照视频里敲的代码,就是想让显示成:实例化后对象名+运行了14秒

qiuyouzhi 发表于 2020-4-29 17:59:42

hehe210417 发表于 2020-4-29 17:56
我现在用的是手机发的求助,电脑上不了外网啊,就是按照视频里敲的代码,就是想让显示成:实例化后对象名+ ...

那个__repr__里面不是有个self吗,
改成
return self + "运行了多少多少秒"
差不多是这样的,就把原字符串和self加起来试试

hehe210417 发表于 2020-4-29 18:00:02

def _calc(self):
      self.lasted = []
      self.prompt = "%s运行了" % self


这个显示是不对的,显示的是:提示:请先调用stop()停止计时!运行了14秒

zltzlt 发表于 2020-4-29 18:16:55

qiuyouzhi 发表于 2020-4-29 17:59
那个__repr__里面不是有个self吗,
改成
"


这样不行的,楼主的需求是获取外部实例的变量名

hehe210417 发表于 2020-4-29 18:32:53

对,就是想要实例的变量名

hehe210417 发表于 2020-4-29 20:20:25

有没有鱼油帮助一下啊,不解决,感觉这节课就过不去啊

Stubborn 发表于 2020-4-29 20:20:34

你想要实例化的内部成员函数名,成员变量名,统统可以搞定,实例变量名还真搞不定{:10_277:}

ytx25 发表于 2020-5-8 15:38:27

      for index in range(6):
            self.lasted.append(self.stop - self.start) #index?
            self.prompt += str(self.lasted)
不是很明白上面这几行代码。首先请问为什么是rang(6)?另外请问self.start是列表性质?为什么可以通过[]形式提取数值?

ytx25 发表于 2020-5-8 16:47:20

self.prompt += str(self.lasted)+self.unit
另外对上述代码也不是很清楚。为什么是用一个字符串与列表相加?
页: [1]
查看完整版本: 044魔方方法:简单定制,怎么在类里面引用实例化后对象名字的问题