参考资料: 廖雪峰教程
list 和 tuple
list和tuple是Python内置的有序集合,一个可变,一个不可变
list是一种有序的集合,可以随时添加和删除其中的元素。
索引正数从0开始,倒数从-1开始
tuple 是不可变 所以不能添加插入
python缩进规则: 循环等条件后 ,回车--tab 缩进成功
在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。dict的key必须是不可变对象。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
dict 大括号, kay 中括号
set可以看成数学意义上的无序和无重复元素的集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
s创建需要小括号和中括号
class后面紧接着是类名,类名通常是大写开头的单词,紧接着是(object)
,表示该类是从哪个类继承下来的
class Student(object):
pass
实例是通过类名+()
>>> bart = Student()
可以自由地给一个实例变量绑定属性,比如,给实例
bart
绑定一个
name
属性:
>>> bart.name = 'Bart Simpson'
定义一个特殊的__init__
方法,在创建实例的时候,就把name
,score
等属性绑上去
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
__init__
方法的第一个参数永远是
self
,表示创建的实例本身,因此,在
__init__
方法内部,就可以把各种属性绑定到
self
,因为
self
就指向创建的实例本身.
和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self
,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别
函数名也是变量: 对于abs()
这个函数,完全可以把函数名abs
看成变量
把函数作为参数传入,这样的函数称为高阶函数,还可以把函数作为结果值返回
在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。
面向对象的设计思想是抽象出Class,根据Class创建Instance(实例),实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;