如果你想在功能之間共享的狀態,要做到這一點的最好辦法很可能是一類:
# pytime.py
class PyTime(object):
def __init__(self, hour=0, minute=0):
self._hour = hour
self._minute = minute
def set_time(self, hour=None, minute=None):
if hour is not None:
self._hour = hour
if minute is not None:
self._minute = minute
def read_time(self):
return self._hour, self._minute
def __str__(self):
return "{0._hour:02d}:{0._minute:02d}".format(self)
@property
def hour(self):
return self._hour
@property
def minute(self):
return self._minute
在使用中:
>>> timer = PyTime()
>>> timer.set_time(16, 40)
>>> timer.read_time()
(16, 40)
>>> timer.hour
16
>>> str(timer)
'16.40'
>>> timer.set_time(minute=30)
>>> str(timer)
'16:30'
>>> timer.hour = 15
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
timer.hour = 15
AttributeError: can't set attribute
注意這最後的結果 - 因爲我爲hour
定義了屬性獲取器,但沒有設置器,因此hour
是不可變的(儘管確定的用戶可以直接訪問_hour
)。
什麼? pytime.settime實際上做了什麼?它有什麼變化? – jonrsharpe
它增加了時間變量,包括時間。 readtime()應該讀取這個變量 – user3611091
你是什麼意思*「添加變量」*?你能否展示一個[最小示例](http://stackoverflow.com/help/mcve)而不是描述它? – jonrsharpe