python的变量作用域,main函数里面的变量,其他函数里面也能直接用

def  hh():
    print(a)

if __name__ == '__main__':
    a=20
    hh()

20

        和js差不多的一个道理,有一个 LEGB 变量作用域,js里面是什么作用域链,但c和c++似乎不是这样(我好久没复习了)

使用场景

        为什么想到这个是因为,我在接手师兄的项目时候,注册界面是登录界面的一个子界面(都在一个窗口),我要求在用户点击进入注册时,窗口名字应该改为 账号注册 , 注册完(或者返回)的时候跳回登录界面,窗口名字应该又改为 登陆界面

在这里插入图片描述

在这里插入图片描述

    def show_register():
        print("展示注册界面")      # 进入注册界面
        login_window.setWindowTitle('账号注册')   # login_window是登录界面,是我在main 函数里面定义的

        animation = QPropertyAnimation(register_vb)
        animation.setTargetObject(register_vb)
        animation.setPropertyName(b"pos")
        animation.setStartValue(register_vb.pos())
        animation.setEndValue(QPoint(0, 0))
        animation.setDuration(1000)
        animation.setEasingCurve(QEasingCurve.OutBounce)
        animation.start(QAbstractAnimation.DeleteWhenStopped)

    login_window.show_register_signal.connect(show_register)
    
    def exit_register():
        print("退出注册页面")
        login_window.setWindowTitle('登陆界面')

        animation = QPropertyAnimation(register_vb)
        animation.setTargetObject(register_vb)
        animation.setPropertyName(b"pos")
        animation.setStartValue(QPoint(0, 0))
        animation.setEndValue(QPoint(0,login_window.width()))
        animation.setDuration(1000)
        animation.setEasingCurve(QEasingCurve.OutBounce)
        animation.start(QAbstractAnimation.DeleteWhenStopped)

    register_vb.exit_signal.connect(exit_register)

        随手记录下,加深印象,主要是习惯了传参,返回结果的模式,哈哈哈哈,一时间没想到。有一说一,虽然有这样的保护机制,但是我还是觉得变量不要起相同名字,不太好阅读,计算机是知道,但是看代码的人不晓得,也可能是我太菜,哈哈哈哈,个人习惯

        这篇文章讲的错 Python变量作用域及闭包

posted on 2021-06-09 19:45  雾恋过往  阅读(318)  评论(0编辑  收藏  举报

Live2D