登录
首页 >  文章 >  python教程

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

时间:2024-11-30 19:24:57 337浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《Python代码中时间不更新和“ss 未定义”问题如何解决?》,以下内容主要包含等知识点,如果你正在学习或准备学习文章,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

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)

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>