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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • class Person(object):

        count = 0

        def __init__(self, name):

            self.__name = name

            Person.count += 1


    查看全部
  • L1 = [p1, p2, p3]

    L2 = sorted(L1, key=lambda x:x.name)


    查看全部
  • 请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]



    filter() 接收的函数必须判断出一个数的平方根是否是整数,而 math.sqrt()返回结果是浮点数。

    参考代码:

    import math
    def is_sqr(x):
        r = int(math.sqrt(x))
        return r*r==x
    print filter(is_sqr, range(1, 101))



    import math

    def is_sqr(x):
        return math.sqrt(x)%1==0

    print filter(is_sqr, range(1, 101))



    import math

    def is_sqr(x):
        v = math.sqrt(x)
        return int(v) == v
    print filter(is_sqr, range(1, 101))


    查看全部
  • python中除法。

    1、/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数。

    2、整数的地板除//永远是整数,即使除不尽。

    3、还有一个取余的运算%,结果也是整数。



    查看全部
  • 现在,在交互式命令行下用 print 试试:

    >>> p = Person('Bob', 'male')
    >>> print p
    (Person: Bob, male)

    但是,如果直接敲变量 p:

    >>> p
    <main.Person object at 0x10c941890>

    似乎__str__() 不会被调用。

    因为 Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。

    有一个偷懒的定义__repr__的方法:

    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)
        __repr__ = __str__


    查看全部

  • try:
       import simplecmp
    except ImportError:
       import simplecmp as cmp
    class Person(object):
       pass

    p1 = Person()
    p1.name = 'Bart'

    p2 = Person()
    p2.name = 'Adam'

    p3 = Person()
    p3.name = 'Lisa'

    L1 = [p1, p2, p3]
    L2 = sorted(L1,lambda p1,p2: cmp(p1.name, p2.name))
    #L2=sorted(L1,key=Lambda,p1:p1.name)

    print (L2[0].name)
    print (L2[1].name)
    print (L2[2].name)

    L2应该如何编写?

    查看全部
  • 让每个实例拥有给不同的属性:

    python是动态性语言,直接给xiaoming这个实例的属性赋值。给xiaoming:

    xiaoming=Person()

    xiaoming.name="xiaoming"

    xiaoming.gender="Male"

    xiaoming.birth='1988-04-16'

    给小红:

    xiaohong=Person()

    xiaohong.name="xiaohong"

    xiaohong.school='No.1 High School'

    xiaohong.birth='1990-1-1'

    实例的属性可以像普通变量一样进行操作:

    xiaohong.grade=xiaohong.grade+1

     

    查看全部
  • import types
    def fn_get_grade(self):
        if self.score >= 80:
            return 'A'
        if self.score >= 60:
            return 'B'
        return 'C'
    
    class Person(object):
        def __init__(self, name, score):
            self.name = name
            self.score = score
    
    p1 = Person('Bob', 90)p1.get_grade = types.MethodType(fn_get_grade, p1, Person)print p1.get_grade()# => Ap2 = Person('Alice', 65)
    print p2.get_grade()# ERROR: AttributeError: 'Person' object has no attribute 'get_grade'
    # 因为p2实例并没有绑定get_grade


    查看全部
  • 类通过 class 关键字定义。

    定义一个Person类如下:

    class Person(object):
        pass
    类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。创建实例使用 
    类名+()
    longlong=Person()
    xiaozhuang=Person()

    查看全部
  • 可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。

    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。

    但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。

    以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。

    查看全部
  • https://img1.sycdn.imooc.com//5c89a83f0001422204740247.jpg装饰器的意思就是定义一个高阶函数(return f那种),然后用@把这个函数强行附加在另一个函数上,达到增加被附加的函数功能的作用

    查看全部
  • import functools

    sorted_ignore_case = functools.partial(sorted, key=str.lower)

    print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])


    查看全部
    0 采集 收起 来源:python中偏函数

    2019-03-14

  • 没有看懂。

    查看全部
  • 这个题没有看懂

    查看全部

举报

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

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