1-函数

函数名其实是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:

>>> a = abs # 变量a指向abs函数
>>> a(-1) # 所以也可以通过a调用abs函数
1

类似于C语言中的函数指针

定义函数

def my_abs(arguments):

如果没有return语句,函数执行完毕后也会返回结果,只是结果为None

如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数

如果想定义一个什么事也不做的空函数,可以用pass语句

数据类型检查可以用内置函数isinstance()实现:

if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')

Python的函数返回多值其实是返回一个tuple,但返回语法上可以省略括号

函数的参数

默认参数

def power(x, n=2):

当不按顺序提供部分默认参数时,需要把参数名写上。比如调用 enroll('Adam', 'M', city='Tianjin')

==默认参数必须指向不变对象!== 否则这个默认参数可能会发生变化 (毕竟一切对象皆指针)

可变参数

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

在函数内部,参数numbers接收到的是一个tuple