【发布时间】:2017-05-13 02:12:24
【问题描述】:
我有一种方法可以通过检查前三个字母/数字并确保它们相同,然后继续这样操作
def combineProcess(request):
carID1 = request.POST['carID1']
carID2 = request.POST['carID2']
for x in range (0,3):
a += carID1.length(x)
b += carID2.length(x)
if a.equals(b):
//do something
在它使用之前它现在停止了,我得到了这个错误。
Exception Type: UnboundLocalError
Exception Value:
local variable 'a' referenced before assignment
几周前我从未使用过它并没有改变任何东西,所以我将 a 和 b 设为全局。
def combineProcess(request):
carID1 = request.POST['carID1']
carID2 = request.POST['carID2']
global a,b
for x in range (0,3):
a += carID1.length(x)
b += carID2.length(x)
if a.equals(b):
//do something
现在我收到此错误。
Exception Type: NameError
Exception Value:
name 'a' is not defined
然后我删除了全局线并放了这个
a = "P"
并得到以下错误
str object has no attribute length() or len()
这让我感到困惑,这段代码是如何停止工作的,为什么它不能识别出一个字符串对象有一个 len() 方法。主要是我迷失了我的代码是如何从工作到两周不工作的。
【问题讨论】:
-
请修正缩进。我们不可能知道函数中有什么。使用 4 个空格得到一个代码块,另外 4 个空格显示函数的缩进。
-
你确定你在这里写的是 Python,而不是 Java 之类的东西吗?除了
.length()的问题之外,字符串在 Python 中也没有.equals方法。 -
我认为这可能是问题所在,因为我每天都使用两种语言 python 和 c# 进行编码,所以我可能只是混淆了两者