|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Isaiah 于 2017-4-19 12:29 编辑
在看了修饰符那帖子后对静态属性一直似懂非懂的。。。
以下是44讲计数器的代码。我觉得self.unit这个列表不是可以做静态属性吗?
import time
class Mytimer:
def __init__(self):
self.unit=['年','月','天','小时','分','秒']
self.prompt='未开始计时!'
self.begin=0
self.end=0
self.lasted=[]
def __repr__(self):
return self.prompt
def start(self):
self.begin=time.localtime()
print('计时开始!')
def stop(self):
self.end=time.localtime()
self._cale()
print('及时结束!')
def _cale(self):
self.prompt='总共运行了'
for index in range(6):
self.lasted.append(self.end[index]-self.begin[index])
if self.lasted[index]:
self.prompt += (str(self.lasted[index])+self.unit[index])
于是我把self.unit的self去掉放在__init__上面
class Mytimer:
unit=['年','月','天','小时','分','秒']
def __init__(self):
self.prompt='未开始计时!'
self.begin=0
self.end=0
self.lasted=[]
但是这样改后就是报错说unit没定义这是为啥?
然后我又把unit放在类的外面 就是可以运行的了
unit=['年','月','天','小时','分','秒']
class Mytimer:
def __init__(self):
self.prompt='未开始计时!'
self.begin=0
self.end=0
self.lasted=[]
为什么unit放类一开始做静态属性不可以呢?
|
|