python - 如何创建一个不断更新的全局变量?

标签 python

我当前的项目是用 Python 制作一个时钟。使用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() 的不同位,同时保持最新。

子问题 变量 = threading.Thread(target=[obj]) [obj] have 是否是一个函数,或者是否有某种方法可以让代码循环在线程中运行而不将其作为函数运行,以便变量线程中运行是全局的?

最佳答案

在你的情况下,time变量是一个线程,(应该像time = threading.Thread(target =clock)一样初始化,如果你需要当前时间可以在 while 循环中使用 datetime.datetime.now() 并在一次迭代时间内完成所有时钟操作

关于python - 如何创建一个不断更新的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60352759/

相关文章:

python - Django 无法加载测试装置,IntegrityError

python - IPython 并行计算命名空间问题

python - 删除在 1 列中总和为零但在 Pandas 中重复的行

python - 在 tornado.web 中提供一个 zip 文件

python - 如何从 html 表格元素中解析文本

python - 为什么传递元组会导致 pandas 出现关键错误?

python异常消息捕获

python - NumPy mmap : "ValueError: Size of available data is not a multiple of data-type size."

python - 如何安装 Pandas 0.20.0

python - 分配字典键和值时出现 KeyError