Python代码中时间不更新和“ss 未定义”问题如何解决?

python 时间不更新和“ss 未定义”问题
在你的python代码中遇到了两个问题:时间不更新和“ss 未定义”。
时间不更新
这是因为你没有在循环中重新设置全局变量 t 和类属性 ss。t 在程序启动时被赋值,ss 在类的第一次初始化时被赋值。在循环中,你必须重新赋值这些变量,以便它们反映当前时间。
改进后的代码:
import time
t = time.strftime('%h:%m', time.localtime())
class ee:
ss = time.strftime('%h:%m', time.localtime())
def a(self):
print(t, 'a() t')
def b(self):
print(ee.ss, 'b() ee.ss')
def c(self):
global ss
print(ss, 'c() global ss')
def d(self):
print(time.strftime('%h:%m', time.localtime()), 'd()')
if __name__ == '__main__':
z = ee()
while true:
t = time.strftime('%h:%m', time.localtime())
z.ss = time.strftime('%h:%m', time.localtime())
z.a()
z.b()
z.c()
z.d()
time.sleep(2)
“ss 未定义”
这是因为你尝试在全局范围内访问类属性 ss,但没有在全局范围内定义它。解决方法是使用 global 关键字将 ss 声明为全局变量,或使用类方法访问它。
改进后的代码:
import time
class ee:
def __init__(self):
global ss
ss = time.strftime('%H:%M', time.localtime())
def a(self):
print(t, 'a() t')
def b(self):
print(ee.ss, 'b() ee.ss')
def c(self):
print(ss, 'c() global ss')
def d(self):
print(time.strftime('%H:%M', time.localtime()), 'd()')
if __name__ == '__main__':
ee() # 调用构造函数
while True:
z = ee()
z.a()
z.b()
z.c()
z.d()
time.sleep(2)
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注米云公众号,一起学习编程~
