例如,我有一个名为“gui.py”的文件,它使用一个名为“pytime.py”的模块。 它们位于同一目录中。
模块(time.py)代码有两个函数:settime()和readtime()
gui.py代码如下:
import pytime
pytime.settime(16,40) #set hour to 16:40
现在,我希望pytime模块中的其他函数(readtime())可以访问小时。 我试过“全球”,但它没有帮助,也搜索了很多。
谢谢!
答案 0 :(得分:1)
如果你想在函数之间共享状态,那么最好的方法可能是一个类:
# 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
定义了一个属性getter但没有setter,hour
是不可变的(尽管确定的用户可以直接访问_hour
)。
答案 1 :(得分:0)
您可以在变量中传递,如下所示:
<强> pytime.py
强>
def settime(hour, minute):
return str(hour)+':'+str(minute)
def readtime(hour):
print 'This is the hour: {0}'.format(hour)
<强> gui.py
强>
import pytime
hour = pytime.settime(16, 40)
pytime.readtime(hour)
运行如下:
bash-3.2$ python gui.py
This is the hour: 16:40
bash-3.2$