python入门-函数

108 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情


大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:



函数

注意:最后面的:

  • 一些可以被重复使用的代码, 可以提取出来放到函数中.

  • Python使用def来定义一个函数. 使用return来返回结果

    • 由于是动态类型,所以不用写返回值的类型
    def Add(x,y):
        return x+y
    
  • Python使用()来调用函数

    • 理解 "形参" 和 "实参": 形参相当于数学中 "未知数" 这样的概念. 实参就是给未知数确定具体的数值.
    • Python中没有 "重载" 这样的概念. 相同名字的函数, 后面的会覆盖前面的.
    def func():
        print("a")
    def func():
        print("b")
    func()  #打印b
    

默认参数

  • Python支持默认参数. 函数的参数可以具备默认值,即:调用时没有传参或者少传参,默认为某个数(缺省值)

    def  Add(x = 0,y = 1):
        return x+y
    print(Add(10))  #10+1=11
    print(Add())    #0+1=1
    

解包unpack语法

  • Python解包(unpack)语法, 函数返回多个值

    def GetPoint():
        return 100,200
    x,y = GetPoint()
    print(x,y)#100 200
    

占位符

  • 假如我只关注y, 不想关注x, 可以使用 _ 作为占位符.
def GetPoint():
    return 100,200
_,y = GetPoint()    #_是占位符
print(y)#200
  • 函数也是 "对象". 一个函数和一个数字, 字符串一样, 都可以定义 "别名" 来引用它.
def Func():
    print("aaa")
print(type(Func))   #直接取函数名打印类型,不需要调用       <class 'function'>
func = Func #func就是函数Func的别名
func();#调用func函数    aaa
print(type(func))   #<class 'function'>
  • 函数既然是一个对象, 那么也可以作为另外的一个函数的参数和返回值.

例如:

str = "Mango"
print(len(str))#len函数的返回值作为print函数的参数

\

函数也可以作为函数的参数

  • 函数也是一个对象, 因此可以作为其他函数的参数

以sorted函数为例, 给一个序列进行排序. 这个函数可以支持自定制比较规则.


函数也可以作为函数的返回值

  • 一个函数可以在另外一个函数内部定义. 也可以作为一个返回值返回出去.
  • 这里还有一个概念叫做 "闭包"

可调用对象

类似于函数这样的对象, 可以进行调用执行一段代码. 这种对象我们称为可调用对象

关于可调用对象, 只需要实现 call 对应的函数即可

类似于重载operator()