您能告诉我我在以下代码中犯了哪个错误吗?
def sumOfLeftLeaves(num):
mytotal = 0
def helper():
mytotal = mytotal + num
helper()
return mytotal
inum = 100
print(sumOfLeftLeaves(inum))
答案 0 :(得分:1)
您不能分配超出范围的变量(但是您可以读取它)。 Python在当前作用域中查找该变量,但未找到该变量,从而引发了UnboundLocalError。
最直接的解决方案是function Get-TemplateUser(){
$adusernames = Get-ADUser -Filter {enabled -eq $true} | ? {$_.GivenName -notlike ""} | select Name
foreach($user in $adusernames){
$ComboBoxTemplate.Items.Add($user)
}
}
关键字:
nonlocal
但这是不好的做法。首选是将变量作为参数传递并返回结果。该示例旨在简化操作(显然,您是在递归地遍历二叉树),因此没有明显的改写,这一点也不荒谬。
答案 1 :(得分:0)
您应该在辅助函数中执行var声明,而实际上它没有返回任何内容:
def sumOfLeftLeaves(num):
mytotal = 0
def helper(mytotal, num):
mytotal = mytotal + num
return mytotal
return helper(mytotal, num)
inum = 100
print(sumOfLeftLeaves(inum))