Python进阶(三)

匿名函数

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。用匿名函数有个好处,由于函数没有名字,没必要担忧函数名冲突。此外,匿名函数也是一个函数对象,也能够把匿名函数赋值给一个变量,再利用变量来调用该函数。html

filter函数()把传入的函数依次做用于每一个元素

python中map函数用法

关于图片中输出结果不一样的解释



类和实例

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,好比Student类,而实例是根据类建立出来的一个个具体的“对象”,每一个对象都拥有相同的方法,但各自的数据可能不一样。仍以Student类为例,在Python中,定义类是经过class关键字:python

访问限制

若是要让内部属性不被外部访问,能够把属性的名称前加上两个下划线__,在Python中,实例的变量名若是以__开头,就变成了一个私有变量(private),只有内部能够访问,外部不能访问。函数

class Student(object):

    def __init__(self, name, score):
        self.__name = name
        self.__score = score

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))

可是若是外部代码要获取name和score怎么办?能够给Student类增长get_name和get_score这样的方法:code

class Student(object):
    ...

    def set_score(self, score):
        self.__score = score

须要注意的是,在Python中,变量名相似__xxx__的,也就是以双下划线开头,而且以双下划线结尾的,是特殊变量,特殊变量是能够直接访问的,不是private变量,因此,不能用__name__、__score__这样的变量名。有些时候,你会看到以一个下划线开头的实例变量名,好比_name,这样的实例变量外部是能够访问的,可是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我能够被访问,可是,请把我视为私有变量,不要随意访问”。htm


判断一个变量是不是某个类型能够用isinstance()判断

推荐一个解释比较好的博客对象

Python 类的继承和多态