函数被定义后,本身是不会自动执行的,只有在被调用后,函数才会被执行,得到相应的结果。但是在 Python 中我们要注意一个关键点,就是Python不允许前向引用,即在函数定义之前,不允许调用该函数。
例如:
print plus(1,2)def plus(a,b): return a+b
运行结果为:
NameError: name 'plus' is not defined
从报错结果可以看出,名字为plus的函数还没进行定义(虽然我们是在后面进行了定义)。所以当我们在调用函数时,一定要确定在调用之前进行了函数定义。
我们要在调用函数时,需要正确调用函数的名称和参数
例如我们定义了一个加法函数:
def plus(a,b): return a+b
我们在调用plus()函数时,如果传入的参数类型不对,会报TypeError错误。而且有时我们传入的参数类型不是规定类型的话,就算调用函数运行结果没有报错,也会产生逻辑错误。
例如:
# 定义plus函数,作用是求两个正整数之和 def plus(a,b): return a+b# 调用plus函数,参数类型为'1','2' print(plus('1','2'))
输出结果:
12
虽然上述例子的程序运行结果没有报错,但是结果却与我们的预期不符,因为我们的本意是调用plus()加粗样式函数实现两个整数的加法。但是如果我们传入的是字符串类型的数值时,结果就是两个字符串的拼接。所以这个例子告诉我们一定要注意传入参数的类型。当我们传入正常类型的参数时,传入的参数个数不一致时,也会报TypeError错误。
例如:
# 定义plus函数,作用是求两个正整数之和 def plus(a,b): return a+b# 调用plus函数,参数为1,2,3 print(plus(1,2,3))
报错:
TypeError: plus() takes 2 positional arguments but 3 were given
报错原因显示,因为plus()函数允许有且仅有2个参数,但是却在调用时传入了3个参数,所以程序报错。
全部0条评论
快来发表一下你的评论吧 !