Bootstrap

学习python的第三天

函数

函数的定义

函数以def关键词开头,后接函数名和圆括号()。函数执行的代码以冒号起始,并且缩进。return[表达式] 结束函数,选择性地返回一个值给调用方。

函数的调用

def printme(str):
    print(str)

printme("我要调用用户自定义函数!")

函数文档

def MyFirstFunction(name):
    "函数定义过程中name是形参"
    print('传递进来的{0}叫做实参,因为Ta是具体的参数值!'.format(name))

MyFirstFunction('老马的程序人生')
print(MyFirstFunction.__doc__)

函数参数

  • 位置参数 (positional argument)
  • 默认参数 (default argument)
  • 可变参数 (variable argument)
  • 关键字参数 (keyword argument)
  • 命名关键字参数 (name keyword argument)
  • 参数组合

函数的返回值

def add(a, b):
    return a + b

print(add(1, 2))

变量作用域

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。

Lambda 表达式

匿名函数的定义

Python 使用 lambda 关键词来创建匿名函数。

lambda argument_list: expression

匿名函数的应用

匿名函数常常应用于函数式编程的高阶函数中。

类与对象

对象 = 属性 + 方法

对象是类的实例。类主要定义对象的结构。

self 是什么?

Python 的 self 相当于 C++ 的 this 指针。

Python 的魔法方法

类有一个名为__init__(self[, param1, param2...])的魔法方法,该方法在类实例化时会自动调用。

公有和私有

在 Python 中定义私有变量只需要在变量名或函数名前加上“__”两个下划线。

继承

Python 同样支持类的继承。

组合

可以使用关键字 class 定义 Python 类。

类、类对象和实例对象

类对象:创建一个类,其实也是一个对象也在内存开辟了一块空间,称为类对象。
实例对象:就是通过实例化类创建的对象,称为实例对象。

什么是绑定?

Python 严格要求方法需要有实例才能被调用,这种限制其实就是 Python 所谓的绑定概念。

一些相关的内置函数(BIF)

  • issubclass(class, classinfo)
  • isinstance(object, classinfo)
  • hasattr(object, name)
  • getattr(object, name[, default])
  • setattr(object, name, value)
  • delattr(object, name)
  • property([fget[, fset[, fdel[, doc]]]])

魔法方法

魔法方法总是被双下划线包围,例如__init__

基本的魔法方法

  • __init__(self[, ...]) 构造器
  • __new__(cls[, ...]) 在一个对象实例化的时候所调用的第一个方法
  • __del__(self) 析构器

算术运算符

  • __add__(self, other) 定义加法的行为:+
  • __sub__(self, other) 定义减法的行为:-
  • __mul__(self, other) 定义乘法的行为:*

反算术运算符

反运算魔方方法,与算术运算符保持一一对应,不同之处就是反运算的魔法方法多了一个“r”。

增量赋值运算符

  • __iadd__(self, other) 定义赋值加法的行为:+=
  • __isub__(self, other) 定义赋值减法的行为:-=

一元运算符

  • __neg__(self) 定义正号的行为:+x
  • __pos__(self) 定义负号的行为:-x

属性访问

  • __getattr__(self, name) 定义当用户试图获取一个不存在的属性时的行为。
  • __setattr__(self, name, value) 定义当一个属性被设置时的行为。

描述符

描述符就是将某种特殊类型的类的实例指派给另一个类的属性。

定制序列

协议(Protocols)与其它编程语言中的接口很相似,它规定你哪些方法必须要定义。

迭代器

迭代器是一个可以记住遍历的位置的对象。

生成器

使用了 yield 的函数被称为生成器。调用一个生成器函数,返回的是一个迭代器对象。

;