PHP前端开发

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

百变鹏仔 5天前 #Python
文章标签 新和

python 时间不更新和“ss 未定义”问题

在你的python代码中遇到了两个问题:时间不更新和“ss 未定义”。

时间不更新

这是因为你没有在循环中重新设置全局变量 t 和类属性 ss。t 在程序启动时被赋值,ss 在类的第一次初始化时被赋值。在循环中,你必须重新赋值这些变量,以便它们反映当前时间。

立即学习“Python免费学习笔记(深入)”;

改进后的代码:

import timet = 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 timeclass 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)