
python 时间不更新和“ss 未定义”问题
在你的python代码中遇到了两个问题:时间不更新和“ss 未定义”。
时间不更新
这是因为你没有在循环中重新设置全局变量 t 和类属性 ss。t 在程序启动时被赋值,ss 在类的第一次初始化时被赋值。在循环中,你必须重新赋值这些变量,以便它们反映当前时间。
立即学习“Python免费学习笔记(深入)”;
改进后的代码:
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)以上就是Python代码中时间不更新和“ss 未定义”问题如何解决?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号