曼查克 发表于 2021-3-10 22:44:27

用函数修改另一个函数的变量,求指教

代码如下:
def a():
    date = 12
    b()
    def b():
      nonlocal date
      date = 13
a()

UnboundLocalError: local variable 'b' referenced before assignment

事实上,我的目的是想在函数a里面用另一个函数修改date的值,请问怎么能办到呢?

另外,希望能解释一下上面报错的原因?

感谢指点!!!

jackz007 发表于 2021-3-10 23:09:17

      关键是,函数定义必须先于函数调用
def a():
    date = 12
    def b():
      nonlocal date
      date = 13
    b()
    print(date)

a()

曼查克 发表于 2021-3-11 11:45:33

本帖最后由 曼查克 于 2021-3-11 11:48 编辑


self.ui.timeEdit_2.timeChanged.connect(timechanged())
def timechanged():
        cfg['aa'] = '2'

timechanged()


UnboundLocalError: local variable 'timechanged' referenced before assignment

以上

jackz007 发表于 2021-3-11 16:02:52

      同样的毛病
def timechanged():
      cfg['aa'] = '2'
self.ui.timeEdit_2.timeChanged.connect(timechanged())
      这样再试

曼查克 发表于 2021-3-11 22:36:39

jackz007 发表于 2021-3-11 16:02
同样的毛病

      这样再试

嗯嗯,已解决,感谢!
昨天头晕到把自己绕进去了都。
页: [1]
查看完整版本: 用函数修改另一个函数的变量,求指教