为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • filter() 参数:函数f, list。 对每个元素进行判断,返回符合条件的元素生成的list

    查看全部
  • map():它接收一个函数 f 和一个 list,并通过把函数  依次作用在 list 的每个元素上.。

    所以在函数内部,不需要进行for循环

    查看全部
  • reduce()函数还可以接受第三个初始值

    查看全部
  • sorted()函数:接收一个比较函数对List进行排序。默认为从小到大排序

    查看全部
  • filter()函数:过滤掉不符合函数的list元素,返回新的list

    查看全部
  • reduce()函数:对list依次调用函数,可以接收第三个初始值作为计算的初始值

    查看全部
  • map()函数接收两个参数:一个函数和一个list。

    在2中,接收一个list返回一个list

    在3中,接收一个List返回一个iterators,需要用list()转换成list

    查看全部
  • type():获取变量类型并返回Type对象。

    >>> type(123)
    <type 'int'>
    >>> s = Student('Bob', 'Male', 88)
    >>> type(s)
    <class '__main__.Student'>

    dir():获取变量的所有属性。

    >>> dir(123)
    ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...]
    
    >>> dir(s)        # 对于实例变量,dir()返回所有实例属性
    ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'gender', 'name', 'score', 'whoAmI']

    getattr():根据属性名获取属性值。

    setattr():根据属性名设置属性值。

    >>> getattr(s, 'name')  # 获取name属性
    'Bob'
    >>> getattr(s, 'age')  # 获取age属性,但是属性不存在,报错:
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'Student' object has no attribute 'age'
    >>> getattr(s, 'age', 20)  # 获取age属性,如果属性不存在,就返回默认值20:
    20
    
    >>> setattr(s, 'name', 'Adam')  # 设置新的name属性
    >>> s.name
    'Adam'


    查看全部
  • 多重继承:从多个父类继承。

    class A(object):
        pass
        
    class B(A):
        pass
        
    class C(A):
        pass
        
    class D(B, C):
        pass

    54daf037000142d207580552.jpg

    D同时继承自B和C,拥有A、B、C的全部功能。

    多重继承通过 super() 调用 __init__() 方法时,__init__() 只调用一次。

    多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。

    查看全部
  • 多态:在一个函数中,无论接收的参数是什么类型,只要该参数含有相应的方法,都可以正确调用该参数的方法。

    def who_am_i(x):
        print x.whoAmI()
        
    p = Person('p')
    s = Student('s')
    t = Teacher('t')
    # 设Person、Student、Teacher类各自含有一个 whoAmI() 方法
    # 则以下函数可以正确调用
    who_am_i(p)
    who_am_i(s)
    who_am_i(t)


    查看全部
    0 采集 收起 来源:python中多态

    2019-08-29

  • class Student(object):


        def __init__(self, name, score):

            self.name = name

            self.__score = score


        @property

        def score(self):

            return self.__score


        @score.setter

        def score(self, score):

            if score < 0 or score > 100:

                raise ValueError('invalid score')

            self.__score = score


        def get_grade(self):

            if self.__score >= 80:

                return 'A'

            if self.__score >=60:

                return 'B'

            return 'C'



    s = Student('Bob', 59)

    print s.get_grade


    查看全部
    0 采集 收起 来源:python中 @property

    2019-08-29

  • isinstance():判断一个变量的类型是否为指定的类型。

    class Person(object):
        pass
        
    class Student(Person):
        pass
        
    class Teacher(Person):
        pass
        
    p = Person()
    s = Student()
    t = Teacher()
    
    print isinstance(t, object)        # True
    print isinstance(t, Person)        # True
    print isinstance(t, Student)        # False
    print isinstance(t, Teacher)        # True

    子类拥有父类以及自身的属性,因此一个父类实例不属于某个子类类型,而一个子类实例可以是其父类类型。

    查看全部
  • 好课
    查看全部
  • 继承:

    子类继承父类需要在 __init__() 方法中调用 super(SubClass, self).__init__(args) ,否则子类将不获得父类的属性。

    函数 super(SubClass, self) 返回当前类继承的父类,接着调用 __init__() 方法并填入父类的属性即可初始化子类从父类继承而来的属性。self参数由于已在 super() 中传入,在 __init__() 中将隐式传递,不需要写出,也不能写出。

    查看全部
  • 继承:

    1、新类从现有的类继承后自动拥有其父类的所有功能。

    2、子类和父类是is关系。

    class Person(object):
        pass
        
    class Student(Person):
        pass
        
    p = Person()        # p是一个Person,不是一个Student
    s = Student()        # s是一个Student,也是一个Person

    3、Python的继承总是从某个类继承。

    父类/基类/超类

    子类/派生类/继承类

    子类需要在 __init__() 方法中调用 super(SubClass, self).__init__(args) 来初始化从父类继承的属性,其中args是父类 __init__() 方法中的参数(不包括“self”):

    class Person(object):
        def __init__(self, name):
            self.name = name
            
    class Student(Person):
        def __init__(self, name, school):
            super(Student, self).__init__(name)
            # 或:Person.__init__(self, name)
            self.school = school


    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!