欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【python】Ch14_函数基础

程序员文章站 2022-06-25 18:44:30
...

函数可以说是对一系列语句做的封装,并且给这个封装的东西起一个名字,一旦这个名字被叫到了,那么就启动封装在这个名字下面的所有语句功能。好处就是它可以高效率的避免我们在不同地方需要同一个功能的时候重复打很多遍一样的代码。函数这项设计是一个即便在复杂的代码逻辑中也能够很有效率并有条不紊的工具。

函数的表达式:
calls:函数的命名
def / return / yield:函数的定义,并利用 return / yield 回传值
global:在函数里面宣告变量时候使用
lambda:用于快速定义一个简单的函数可以这样操作


函数创建过程:

  1. def 是一个可执行代码,是 python 天生拥有的指令,也可以搭配着 while,if,for 这类的指令一起使用都可以一起使用的
  2. def 创造一个函数对象,并且给与这些对象一些参数放置的位置
  3. return 把对象里面的运算结果返回指定(赋值)给函数对象这个名字本身,函数名成为了某一个函数的引用
  4. 函数代表的值是通过“赋值”传递的,像上面描述的逻辑,跟 C 语言的用法完全不同
  5. global 声明的变量可以被该 def 下面代码领域使用之外,还可以在全部脚本范围被引用都是可以的,相反的生命是 local,就只能够在 def 制作函数的时候被调用,就没有“全局观”。

根据上面描述,下面是范例练习:

>>> def name(var1, var2, var3, ..., varN):
        # something executed here
        return value        # return function typically means the end of the name func. 
# Without this function, None result will return to the name func, meaning you do lots of homeworks but you didn't get the exam

搭配 if 使用的话,也是很直观的写法:

>>> if test:
        def func1():
            pass
>>> else:
        def func2():
            pass
如果中途反悔之前给的名字要更换的话,就直接这样就行了:
>>> newName = func2        # so intuitive that you would laugh


辛苦建立好的函数我们该怎么用呢?下面有两种方法:

  1. 直接呼叫该函数的名字并且给一个 (),如果里面要放 argument,那就必须放到规定量的 argument,这样才不会报错。
  2. 把写好的函数打包成一个 .py 文件,然后让别的需要用到的文件来 import 这个函数文件,也可以达到同样的效果。
>>> def intersect(seq1, seq2):
        res = []
        for x in seq1:
            if x in seq2:
                res.append(x)
        return res
>>> s1 = 'spam'
>>> s2 = 'scam'
>>>  intersect(s1, s2)
['s', 'a', 'm']

白话文翻译:

定义一个 intersect 函数,里面有两个必须的变量 seq1, seq2, 只能两个,多了少了多会报错。给定一个空的容器 list 叫做 res(用来装seq1 与 seq2 重复的元素),for 那些在 seq1 里面的东西,if 也在 seq2 里面出现,那么就把那个东西 append到 res 这个容器里面,最后把 res 得到的值回传赋值给这个函数。

但是记得 argument 的位置可以放的元素内容,是根据 def 里面的需求而生的,这个例子里面是不容许放任何其他函数方法的,只能够放 "有序排列的资料形态"。


argument 内容补充 *args and *kwargs
以下是教学视频链接:

    o  https://youtu.be/WWm5DxTzLuk

源代码如下:

# however many arguments are going to take in, this magic *random_name will catch them all
>>> def Func(*args):
        for arg in args:
            print(arg)
>>> Func(1, 2, 345, 58392, 'ham')
1 2 345 58392 ham

>>> def Func(x=234, y=9):
        print(x, y)
        for item in kwargs.items():
            print(item)
>>> Func(x=34, y=483)
34 483
('x', 34)
('y', 483)
但是有一点注意... 

如果 纯粹 Variable, *args,*kwargs 同时出现为 argument 的话,那么就得按照这个顺序排过来输入,这样 python 才会看得懂。

Here is the link of the manual introduction of a blog:

    o  http://kodango.com/variable-arguments-in-python

相关标签: Python def