函数的基本结构
Python中的函数基本结构:
代码如下:
def 函数名([参数列表]):
语句
几点说明:
•函数名的命名规则要符合python中的命名要求。一般用小写字母和单下划线、数字等组合
•def是函数的开始,这个简写来自英文单词define,显然,就是要定义一个什么东西
•函数名后面是圆括号,括号里面,可以有参数列表,也可以没有参数
•千万不要忘记了括号后面的冒号
•语句,相对于def缩进,按照python习惯,缩进四个空格
看简单例子,深入理解上面的要点:
代码如下:
>>> def name(): #定义一个无参数的函数,只是通过这个函数打印
... print "qiwsir" #缩进4个空格
...
>>> name() #调用函数,打印结果
qiwsir
>>> def add(x,y): #定义一个非常简单的函数
... return x+y #缩进4个空格
...
>>> add(2,3) #通过函数,计算2+3
5
注意上面的add(x,y)函数,在这个函数中,没有特别规定参数x,y的类型。其实,这句话本身就是错的,还记得在前面已经多次提到,在python中,变量无类型,只有对象才有类型,这句话应该说成:x,y并没有严格规定其所引用的对象类型。
为什么?列位不要忘记了,这里的所谓参数,跟前面说的变量,本质上是一回事。python中不需要提前声明变量,有的语言就需要声明。只有当用到该变量的时候,才建立变量与对象的对应关系,否则,关系不建立。而对象才有不同的类型。那么,在add(x,y)函数中,x,y在引用对象之前,是完全自由的,也就是它们可以引用任何对象,只要后面的运算许可,如果后面的运算不许可,则会报错。
代码如下:
>>> add("qiw","sir") #这里,x="qiw",y="sir",让函数计算x+y,也就是"qiw"+"sir"
'qiwsir'
>>> add("qiwsir",4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in add
TypeError: cannot concatenate 'str' and 'int' objects #仔细阅读报错信息,就明白错误之处了
从实验结果中发现:x+y的意义完全取决于对象的类型。在python中,将这种依赖关系,称之为多态。这是python和其它的静态语言的重要区别。在python中,代码不关心特定的数据类型。
新闻热点
疑难解答