在本文中,我们将详细讨论函数形参(parameters)和函数实参(arguments)。 我们将学习:
- 形参和实参之间的区别
- 位置和关键字参数
- 默认参数
- 变长参数(
*args
和**kwargs
) - 容器拆包成函数参数
- 局部与全局参数
- 参数传递(按值还是按引用?)
在本文中,我们将详细讨论函数形参(parameters)和函数实参(arguments)。 我们将学习:
*args
和 **kwargs
)生成器是可以在运行中暂停和恢复的函数,返回可以迭代的对象。 与列表不同,它们是懒惰的,因此一次仅在被询问时才产生一项。 因此,在处理大型数据集时,它们的内存效率更高。
生成器的定义类似于普通函数,但是使用 yield
语句而不是 return
。
def my_generator(): |
装饰器是一个函数,它接受另一个函数并扩展该函数的行为而无需显式修改它。 这是一个非常强大的工具,可以将新功能添加到现有函数中。
装饰器有2种:
函数用 @
符号修饰:
|
Python程序在遇到错误后立即终止。在Python中,错误可以是语法错误或异常。 在本文中,我们将关注以下内容:
Lambda函数是一个小的(一行)匿名函数,没有函数名称。 Lambda函数可以接受任意数量的参数,但只能具有一个表达式。 虽然使用def关键字定义了普通函数,但在Python中,使用lambda关键字定义了匿名函数。
lambda arguments: expression |
当简单函数仅在代码中使用一次或短时间时,可以使用Lambda函数。 最常见的用途是作为高阶函数(将其他函数作为参数的函数)的参数。 它们还与诸如 map()
, filter()
, reduce()
之类的内置函数一起使用。
Python itertools
模块是用于处理迭代器的工具集合。 简而言之,迭代器是可以在for循环中使用的数据类型。 Python中最常见的迭代器是列表。
有关所有可能的 itertools,请参见 https://docs.python.org/3/library/itertools.html。
Python 中的 collections
模块实现了专门的容器数据类型,提供了 Python 通用内置容器dict,list,set和tuple的替代方案。
包含以下工具:
namedtuple
:用于创建具有命名字段的元组子类的工厂函数OrderedDict
:用于记住条目添加顺序的dict子类Counter
:用于计算可哈希对象的dict子类defaultdict
:调用工厂函数以提供缺失值的dict子类deque
: 列表式容器,支持两端都有快速追加和弹出在Python 3中,还存在其他一些模块(ChainMap,UserDict,UserList,UserString)。 有关更多参考,请参见 https://docs.python.org/3/library/collections.html。
字符串是字符序列。 Python中的字符串用双引号或单引号引起来。
my_string = 'Hello' |
Python字符串是不可变的,这意味着它们在创建后就无法更改。
集合是无序的容器数据类型,它是无索引的,可变的并且没有重复的元素。 集合用大括号创建。
my_set = {"apple", "banana", "cherry"} |
字典是无序,可变和可索引的集合。 字典由键值对的集合组成。 每个键值对将键映射到其关联值。 字典用大括号书写。 每对键值均以冒号( :
)分隔,并且各项之间以逗号分隔。