为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 1、

    如果我们只希望导入用到的math模块的某几个函数,而不是所有函数,可以用下面的语句:

    from math import pow, sin, log

    如果使用 from...import 导入 log 函数,势必引起冲突。这时,可以给函数起个“别名”来避免冲突:

    from logging import log as logger   # logging的log现在变成了logger


    查看全部
  • class Person(object):
    
        def __init__(self, name, age):
            self.name = name
            self.__age = age
    
        def __str__(self):
            return self.name + ":" + (str(self.__age))
    
    
    p = Person("Yves", 25)
    setattr(p, "name", "Yves2")
    setattr(p, "__age", 56)
    print p
    print getattr(p, "name")
    print getattr(p, "__age")
    
    #  Yves2:25
    #  Yves2
    #  56

    对于没有访问权限的成员属性,不会更改实例的值

    查看全部
  • class Person(object):
        def __init__(self):
            super(Person, self).__init__()
            print "create person instance!"
    
    
    class Student(Person):
        pass
    
    
    class Teacher(Person):
        pass
    
    
    class Test(Student, Teacher):
        pass
    
    
    Test()  # print "create person instance!" only once


    查看全部
  • import json
    class Students(object):
        def __init__(self, msg):
            super(Students, self).__init__()
            self.__msg = msg
        def read(self):
            return self.__msg
    s = Students(r'["Tim", "Bob", "Alice"]')
    print json.load(s)


    主要源码是执行的read方法:

    def load(fp, encoding=None, cls=None, object_hook=None, parse_float=None,
            parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
    
        return loads(fp.read(),
            encoding=encoding, cls=cls, object_hook=object_hook,
            parse_float=parse_float, parse_int=parse_int,
            parse_constant=parse_constant, object_pairs_hook=object_pairs_hook,
            **kw)


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

    2019-01-10

  • class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
    
    
    class Student(Person):
        def __init__(self, name, gender, score):
            super(Student, self).__init__(name, gender)
            self.score = score
    
    
    class Teacher(Person):
        def __init__(self, name, gender, course):
            super(Teacher, self).__init__(name, gender)
            self.course = course
    
    
    t = Teacher('Alice', 'Female', 'English')
    
    print isinstance(t, Person)
    print isinstance(t, Student)
    print isinstance(t, Teacher)
    print isinstance(t, object)


    查看全部
  • class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
    
    
    class Teacher(Person):
    
        def __init__(self, name, gender, course):
            super(Teacher, self).__init__(name,gender)
            self.course = course
    
    
    t = Teacher('Alice', 'Female', 'English')
    print t.name
    print t.course


    查看全部
  • class Person(object):
        __count = 0
        def __init__(self, name):
            self.name = name
            Person.__count += 1
        @classmethod
        def how_many(cls):
            return cls.__count
    print Person.how_many()
    p1 = Person('Bob')
    print Person.how_many()


    查看全部
  • class Person(object):
        def __init__(self, name, score):
            self.name = name
            self.score = score
            self.get_grade = lambda: 'A'
    p1 = Person('Bob', 90)
    print p1.get_grade
    print p1.get_grade()


    查看全部
  • class Person(object):
        def __init__(self, name, score):
            self.name = name
            self.__sore = score
        def get_grade(self):
            if isinstance(self.__sore, int):
                if self.__sore > 80:
                    return "A"
                elif self.__sore > 60:
                    return "B"
                else:
                    return "C"
    p1 = Person('Bob', 90)
    p2 = Person('Alice', 65)
    p3 = Person('Tim', 48)
    print p1.get_grade()
    print p2.get_grade()
    print p3.get_grade()


    查看全部
  • class Person(object):
        __count = 0
        def __init__(self, name):
            Person.__count = Person.__count + 1
            self.name = name
            print Person.__count
    p1 = Person('Bob')
    p2 = Person('Alice')
    try:
        print Person.__count
    except AttributeError:
        print 'attribute error'


    查看全部
  • class Person(object):
        count = 0
        def __init__(self, name):
            self.name = name
            Person.count += 1
    p1 = Person('Bob')
    print Person.count
    p2 = Person('Alice')
    print Person.count
    p3 = Person('Tim')
    print Person.count


    查看全部
  • class Person(object):
        def __init__(self, name, score):
            self.name = name
            self.__sore = score
    p = Person('Bob', 59)
    try:
        print p.name
        print p.__sore
    except AttributeError:
        print 'attribute error'


    查看全部
  • class Person(object):
        def __init__(self, name, gender, birth, **kv):
            self.name = name
            self.gender = gender
            self.birth = birth
            for k, v in kv.iteritems():
                setattr(self, k, v)
    foo = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')
    print foo.name
    print foo.job


    **xx  会将参数映射到字典中

    查看全部
  • class Person(object):
        pass
    p1 = Person()
    p1.name = 'Bart'
    p2 = Person()
    p2.name = 'Adam'
    p3 = Person()
    p3.name = 'Lisa'
    L1 = [p1, p2, p3]
    def cmp_yves(x, y):
        return cmp(x.name, y.name)
    L2 = sorted(L1, cmp_yves)
    print L2[0].name
    print L2[1].name
    print L2[2].name

    使用非匿名函数的形式

    查看全部
  • 注意排序时用的数字正负:

    左为负,右为正,分数由高到低,应大的返回-1;字母按a-z排,越靠后越大,返回1


    https://img1.sycdn.imooc.com//5c36b1ee0001e20103590325.jpg

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

    2019-01-10

举报

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

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