java看不起python,python如何检查错误
这种错误通常是由于在被调用的函数中使用外部变量造成的。这里,不管目的是什么,可能是你想给这个外部变量赋值,也可能你只是想创建一个局部变量,但是它不小心和外部变量重名了)
原因0。首先,必须假设调用函数的内部开头没有使用全局External _variable# external变量或者非局部External _variable# external变量。(当使用这两个语句时,程序将External _variable识别为外部变量,并且
1.在调用函数内部,如果你给这个外部变量赋值,程序会认为你实际上是在给一个与外部变量同名的局部变量赋值。
2.因为它是一个局部变量的赋值操作,所以必须将初始值赋给这个局部变量的其他操作必须显示在赋值操作语句之后。
3.但是,如果其他操作发生在赋值操作之前,程序将报告一个错误。
也有External _variable=2的特殊情况。因为这是一个赋值操作,程序判断该变量是内部变量,因为需要赋值初始值。即使发生这种情况,也会报告一个错误。
如果直接使用外部变量的引用,而不是函数中的赋值操作,则不存在打印操作等问题。
如果这个外部变量的类是基本类型(如int、float、str等),则为Type。).
函数中的操作可能包括:
只给出初始值,没有其他运算two=0 defadd _ two(:two=2 print)two(add _ two)print(two))
此时,程序是协调的,函数的内部变量是局部变量,外部变量是外部变量。
既有代入初始值的操作,也有其他操作,其他操作在代入初始值的操作后不出现。
Two=0defadd _ Two (: two=2打印)two (add _ two)打印(two)
此时,程序将two识别为一个局部变量,但如果two没有初始值,但别人做了=运算,就会报错。
非基类这个外部变量的类是非基本的(比如list,dict等。).
函数中的操作可能包括:
还有其他运算two=[1,2] defadd _ two (:two。append)3)print(two)add _ two(print)two)没有初始值。
打印的结果是,程序将两个识别为外部变量,所以在函数运行时,外部变量也会发生变化。
只有初始值,有无其他运算,two=[1,2] defadd _ two (:two=[1,2,3] print) two (add _ two) print (two))
没有其他操作:因为函数中有赋值操作,所以程序此时把两个当作一个局部变量。
two=[ 1,2 ] defadd _ two (: two=[ 1,2,3]two . append)4)print)two(add _ two)print(two))
因为函数中有与其他运算的替换运算,且顺序正确(即替换运算在先),所以程序此时会将two识别为一个局部变量。不管有多少其他操作,都只会操作这个局部变量。
其他运算包括two=[1,2] defadd _ two (:two。append) 4) two=[1,2,56] print) two (add _ two))在赋值操作之前打印。
还有其他操作,顺序错了(也就是赋值操作跟在后面):由于函数中的赋值操作,程序此时把两个当作一个局部变量。但是,因为顺序错误,所以会报告错误。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。