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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • **kw是关键字参数,用于字典
    iteritems()用于字典kw的遍历
    setattr(self, k, v)就等价于self.k = v
    综上就是,遍历dict  kw 中的属性,给每个属性设置了属性值

    查看全部
  • class Student(object):


        def __init__(self, name, score):

            self.name = name

            self.score = score


        def __str__(self):

            return '(%s: %s)' % (self.name, self.score)


        __repr__ = __str__


        def __cmp__(self, s):

            if False == isinstance(s, Student):

                return -1

            return -cmp(self.score, s.score) or cmp(self.name, s.name)


    L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 99)]


    print sorted(L)

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

    2018-04-26

  • **kw 可以接收多个参数

    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。

    查看全部
  • **kw是关键字参数,用于字典
    iteritems()用于字典kw的遍历
    setattr(self, k, v)就等价于self.k = v
    综上就是,遍历dict  kw 中的属性,给每个属性设置了属性值

    查看全部
  • 解释器内部会将**kw拆分成对应的dict.
    setattr()方法接受3个参数:setattr(对象,属性,属性的值)
    setattr(self,k,v)相当于self.k = v
    kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v

    查看全部
  • 只有以双下划线开头的"__job"不能直接被外部访问

    _xxx 可以在子类中使用。

    __xxx 不可以在子类中使用。


    查看全部
  • 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。

    items函数,将一个字典以列表的形式返回,因为字典是无序的,所以返回的列表也是无序的。

    a = {'a':1,'b':3}
    a.items()
    返回a = [('a',1),('b',3)]

    iteritems()返回一个迭代器

    b = a.iteritems()
    list(b) =[('a',1),('b',3)]for k,v in b:     
        print k,v
    
    返回a 1
          b 3
    查看全部
  • 当函数的参数不确定时,我们可以使用*args 和**kwargs。一般*args 无key值,**kwargs有key值. 比如可以通过*args传入不定数目个int变量,用**kwargs传入不定数目个"age=18"
    查看全部
  • 引用完整的模块

    查看全部
  • 默认升序:L2 = sorted(L1,key=lambda s:s.name)
    设置降序:L2 = sorted(L1,key=lambda s:s.name,reverse=True)

    查看全部
  • JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding

    encoding:把一个Python对象编码转换成Json字符串
    decoding:把Json格式字符串解码转换成Python对象
    对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。

    json.dumps方法对简单数据类型encoding:

    查看全部
  • import time
    
    #format date
    def formatUnits(unit):
        return {
            's':int(time.time()),
            'ms':int(round(time.time() * 1000))
        }.get(unit,'unit is does\'t exist')
    
    #performance log
    def performance(unit):
        def log(f):
            def fn(*args,**kw):
                print 'call ' + f.__name__ + '()...'  + str(formatUnits(unit))
                return f(*args,**kw)
            
            return fn
        
        return log
    
    @performance('ms')
    def factorial(n):
        return reduce(lambda x,y: x*y, range(1, n+1))
    
        print factorial(10)


    查看全部
  • import time


    def performance(unit):

        def formatUnits(unit):

            return {

                's':int(time.time()),

                'ms':int(round(time.time() * 1000))

            }.get(unit,'unit is does\'t exist')

        def log(f):

            def fn(*args,**kw):

                print 'call ' + f.__name__ + '()...'  + str(formatUnits(unit))

                return f(*args,**kw)

            return fn

        return log


    @performance('ms')

    def factorial(n):

        return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)


    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。

    匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。


    查看全部

举报

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

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