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

ID:20593 / 打印

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

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 识别网站是否启用 HTTPS 协议?
下一篇: 在 Linux 上安装 Levenshtein 时,如何解决“‘PyString_Type’ 未声明”错误?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。