鱼C论坛

 找回密码
 立即注册
查看: 2314|回复: 5

[已解决]关于给类方法加个计数器的问题

[复制链接]
发表于 2020-2-7 12:11:28 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
比如,我想查询某结果
会给出这样提示,您的xxx方法没有被执行,无法统计结果
最佳答案
2020-2-7 13:35:00
你是不是要这种效果:
  1. class Test(object):
  2.     def __init__(self):
  3.         self.run = False
  4.     def a(self):
  5.         print("a")
  6.         self.run = True
  7.     def b(self):
  8.         if self.run:
  9.             print("b")
  10.         else:
  11.             print("a 没有被执行")
  12.         self.run = False
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-7 12:25:19 | 显示全部楼层
甲鱼老师不是写过一个计时器吗,你可以看看,找找感觉
Python的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-7 12:46:21 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-2-7 12:25
甲鱼老师不是写过一个计时器吗,你可以看看,找找感觉
Python的

没看过他的资料,本人不太会写类代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-7 13:07:55 | 显示全部楼层
我把代码发给你,你看看吧
  1. # p12_2.py
  2. import time as t

  3. class MyTimer:
  4.     def __init__(self):
  5.         self.prompt = "未开始计时!"
  6.         self.lasted = []
  7.         self.start = 0
  8.         self.stop = 0

  9.     def __init__(self):
  10.         self.unit = ['年', '月', '天', '小时', '分钟', '秒']
  11.         self.prompt = "未开始计时!"
  12.         self.lasted = []
  13.         self.begin = 0
  14.         self.end = 0

  15.     # 开始计时
  16.     def start(self):
  17.         self.begin = t.localtime()
  18.         self.prompt = "提示:请先调用 stop() 开始计时!"
  19.         print("计时开始...")

  20.     # 停止计时
  21.     def stop(self):
  22.         if not self.begin:
  23.             print("提示:请先调用 start() 开始计时!")
  24.         else:
  25.             self.end = t.localtime()
  26.             self._calc()
  27.             print("计时结束!")

  28.     # 计算运行时间
  29.     def _calc(self):
  30.         self.lasted = []
  31.         self.prompt = "总共运行了"
  32.         for index in range(6):
  33.             self.lasted.append(self.end[index] - self.begin[index])
  34.             if self.lasted[index]:
  35.                 self.prompt += (str(self.lasted[index]) + self.unit[index])
  36.         # 为下一轮计算初始化变量
  37.         self.begin = 0
  38.         self.end = 0

  39.     # 重写add方法
  40.     def __add__(self, other):
  41.         prompt = "总共运行了"
  42.         result = []
  43.         for index in range(6):
  44.             result.append(self.lasted[index] + other.lasted[index])
  45.             if result[index]:
  46.                 prompt += (str(result[index]) + self.unit[index])
  47.         return prompt

  48.     def __str__(self):
  49.         return self.prompt
  50.    
  51.     __repr__ = __str__
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-7 13:35:00 | 显示全部楼层    本楼为最佳答案   
你是不是要这种效果:
  1. class Test(object):
  2.     def __init__(self):
  3.         self.run = False
  4.     def a(self):
  5.         print("a")
  6.         self.run = True
  7.     def b(self):
  8.         if self.run:
  9.             print("b")
  10.         else:
  11.             print("a 没有被执行")
  12.         self.run = False
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-7 13:40:29 From FishC Mobile | 显示全部楼层
一个账号 发表于 2020-2-7 13:35
你是不是要这种效果:

差不多,我待会试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 23:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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