1、函数

 Python 中,函数是一种基本类型的对象,这意味着

· 可以将函数作为参数传给另一个函数

· 将函数作为字典的值储存

· 将函数作为另一个函数的返回值

· Python 中的函数传递方式是 call by reference 即引用传递,例如,对于这样的用法:

· x = [10, 11, 12]

· f(x)

· 传递给函数 f 的是一个指向 x 所包含内容的引用,如果我们修改了这个引用所指向内容的值(例如 x[0]=999),那么外面的 x 的值也会被改变。不过如果我们在函数中赋给 x 一个新的值(例如另一个列表),那么在函数外面的 x 的值不会改变:

python中函数、修饰符、和文件操作

2、map、reduce、filter

map(f, sq) 函数将 f 作用到 sq 的每个元素上去,并返回结果组成的列表,相当于:

[f(s) for s in sq]

filter(f, sq) 函数的作用相当于,对于 sq 的每个元素 s,返回所有 f(s)  True  s 组成的列表,相当于:

[s for s in sq if f(s)]

python中函数、修饰符、和文件操作

python中函数、修饰符、和文件操作

3、迭代器、生成器

迭代器对象可以在 for 循环中使用:

python中函数、修饰符、和文件操作    python中函数、修饰符、和文件操作

其好处是不需要对下标进行迭代,但是有些情况下,我们既希望获得下标,也希望获得对应的值,那么可以将迭代器传给 enumerate 函数,这样每次迭代都会返回一组 (index, value) 组成的元组:

生成器使用 yield 关键字将值输出,而迭代器则通过 next  return 将值返回;与迭代器不同的是,生成器会自动记录当前的状态,而迭代器则需要进行额外的操作来记录当前的状态。实际上,迭代器也是一种生成器。

4、with语句和上下文管理

python中函数、修饰符、和文件操作

5、修饰符是这样的一种函数,它接受一个函数作为输入,通常输出也是一个函数:

Python 使用 @ 符号来将某个函数替换为修饰符之后的函数:

python中函数、修饰符、和文件操作

 Python 标准库中,有很多自带的修饰符,例如 classmethod 将一个对象方法转换了类方法:@classmethod 修饰符

@property 修饰符

有时候,我们希望像 Java 一样支持 getters  setters 的方法,这时候就可以使用 property 修饰符:

python中函数、修饰符、和文件操作

python中函数、修饰符、和文件操作

numpy  vectorize 函数讲一个函数转换为 ufunc,事实上它也是一个修饰符:

python中函数、修饰符、和文件操作

6、排列、组合

python中函数、修饰符、和文件操作

标准编程语言

对于 C 语言,代码一般要先编译,再执行。

.c -> .exe

解释器语言

shell 脚本

.sh -> interpreter

Byte Code 编译

Python, Java 等语言先将代码编译为 byte code(不是机器码),然后再处理:

.py -> .pyc -> interpreter

eval(statement, glob, local)

使用 eval 函数动态执行代码,返回执行的值:







相关文章:

  • 2022-12-23
  • 2021-11-29
  • 2022-01-01
  • 2021-06-26
  • 2022-02-13
  • 2022-12-23
猜你喜欢
  • 2022-02-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-11
  • 2021-07-09
  • 2022-12-23
相关资源
相似解决方案