一、参数
1. 定义
def 函数名(参数列表) 功能代码 return 返回值
2. 参数
2.1 形参与实参
(1)形参:函数需要传递的参数
(2)实参:调用函数时传递的参数
2.2 参数的调用
位置实参:函数调用的每个实参都必须关联到函数定义中的一个形参,最简单的就是基于实参的顺序。注意:位置实参的位置不正确,将导致结果不正确
函数形参传值:函数调用时,通过键-值的方式传递参数,不用按照位置的顺序
给形参指定默认值:编写函数时,给形参指定默认值,如果调用时没有传递该参数,则取默认值
位置参数和关键字参数混用:1)必须将 位置参数 写到前面,关键字参数 不用按照顺序来指定;2)每个参数只能接收一个值,不可重复
2.3 参数的传递
(1)不定量的参数传递:*arg: 一个非键值对的可变数量的参数; **kwargs: 不定长度的键值对参数
(2)值传递 :不可变参数通过值传递:数字、字符串、元组;
(3)引用传递:可变参数通过引用传递:列表、字典
3. 作用域
3.1 局部作用域
- 在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用
3.2 全局作用域
- 在 Python代码主体中创建的变量是全局变量,属于全局作用域,全局变量在任何范围(全局和局部)中可用
3.3 在函数内部修改全局变量:global x
二、类
1. 类定义
class关键字定义类,类名通常是大写字母开头的单词
superClass表示继承自哪个类,若没有,则隐含继承object超类
2. 简单例子
__init__():类的实例化操作会自动为新创建的类实例发起调用 ,进行初始化也可以有额外参数进行初始化,我们还可以通过类的任何实例来访问这些变量 当根据 类创建新实例时,Python 都会自动运行它
self:引用当前方法的调用者 ;以 self 为前缀的变量都可供类中的所有方法使用,
3. 类变量和实例变量
类变量用于类的所有实例共享的属性;
实例变量是每个实例的唯一数据
4. 访问属性
可以用.来访问对象属性;可以添加、删除、修改对象属性
5. 继承属性
即一个派生类(derivedclass)继承基类(baseclass)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待
6. 多重继承
圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索, 即方法在子类中未找到时,从左到右查找父类中是否包含方法
三、常用函数
1. enumerate() 函数
1.1 普通的 for 循环
1.2 for 循环使用 enumerate
2. isinstance() 函数
2.1 isinstance() 方法的语法
isinstance(object, classinfo)
- object -- 实例对象。
- classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
2.2 type() 与 isinstance()区别
-
type() 不会认为子类是一种父类类型,不考虑继承关系。
-
isinstance() 会认为子类是一种父类类型,考虑继承关系。(如果要判断两个类型是否相同推荐使用 isinstance())