python - 如何创建一个不断更新的全局变量?
问题描述
我目前的项目是用 Python 制作时钟。使用 datetime 模块,我可以获得我需要的信息。但是,我希望能够格式化时间的打印方式。我的计划是首先将 datetime 模块的输出分成单独的部分,就像这样。
import datetime
time = datetime.datetime.now()
time.day()
使用这种方法,我可以选择我想要的时间段,并以任何顺序安排它们。然而,我发现的问题是,因为time
的输出是创建变量的时间,所以我需要一种方法来不断刷新time
它或它的特定部分,例如time.day()
并且仍然能够访问它。我的下一个尝试是使用线程在后台运行刷新。
import threading
import datetime
import time
def clock():
while True:
return datetime.datetime.now()
time.sleep(.1)
time = threading.Thread(target = clock())
time.start()
然而,这里出现的问题是我无法访问time
包含的不同位。显然,time.day()
不会在这里工作,也不会clock.day()
,因为他们都没有那个选项。
TL;DR
我需要一种方法来创建一个不断更新的变量,这样我就可以使用和安排不同的位,time = datetime.datetime.now()
同时保持它是最新的。
子问题
variable = threading.Thread(target=[obj])
是否[obj]
必须是一个函数,或者是否有某种方法可以使代码循环在线程中运行而不将其作为函数运行,因此在线程中运行的变量是全局的?
解决方案
好的,事实证明我看错了。我不需要不断更新的变量。我只需要它在调用时更新。这很简单,真的。看看下面的代码!
import datetime
def second():
sec = datetime.datetime.now()
return sec.second
Updoot 这是完成的程序!
import os
import datetime
import time
def second():
sec = datetime.datetime.now()
return str(sec.second)
def minute():
min = datetime.datetime.now()
return str(min.minute)
def hour():
hr = datetime.datetime.now()
return str(hr.hour)
def day():
dy = datetime.datetime.now()
return str(dy.day)
def month():
mn = datetime.datetime.now()
return str(mn.month)
def year():
yr = datetime.datetime.now()
return str(yr.year)
while True:
print(hour()+":"+minute()+":"+second()+"\n"+month()+"-"+day()+"-"+year())
time.sleep(.1)
os.system('cls')
推荐阅读
- reactjs - ReactJS 教程:在哪里
来自? - django - Django:从查询集中删除辅助注释
- javascript - MomentJS 在以秒为单位格式化时间时返回 0
- ios - 如果我从开发者帐户禁用 iCloud,那么它会让我将我的应用程序转移到其他帐户吗?
- ansible - 检查是否只定义了几个 Ansible 变量之一
- javascript - Kendo UI 树视图无法加载子项
- java - Appium 框架:无法运行测试:'remote.ProtocolHandshake createSession' 那是什么?
- javascript - 和弦图中的文本对齐
- c# - C# 从有限组合列表中选择
- r - 计算具有指定列数的累积和