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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 要让int()函数正常工作,只需要实现特殊方法__int__(): class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __int__(self): return self.p // self.q 要让float()函数正常工作,只需要实现特殊方法__float__(): 将self.p转型为float类型,再作除法就可以得到float: float(self.p) / self.q
    查看全部
  • 估计很多人没懂这个吧(self.p * r.q + self.q * r.p, self.q * r.q) 在这里p是分子,q是分母 (self.p * r.q + self.q * r.p)这是有理化计算后的分子 (self.q * r.q)这是有理化计算后的分母 r.q是令一个加数的分子,r.p是另一个加数的分母 例如:1/3+3/2 第一个分数的分子乘第二个分数的分母+第一个分数的分母乘第二个分数的分子(也就是交叉相乘再相加)最后得11(这是经过计算后得到的结果的分子) 第一个分数的分母乘第二个分数的分母( self.q * r.q)得到结果是6 所以return(11,6)
    查看全部
  • def gcd(a,b): if b==0: return a return gcd(b,a%b) 取最大公约数
    查看全部
  • 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • 在3.0中,需要用list()构造。 也就是最后一句改为: print(list(filter(is_sqr, range(1, 101))))
    查看全部
  • 一般来讲,2个的区别是: _xxx 可以在子类中使用。 __xxx 不可以在子类中使用。
    查看全部
  • # self.name=name 可以理解为类下的属性其位置,及name属性对应这个位置
    查看全部
  • 匿名函数 lambda x1,x2: expression(x1,x2) 用处: 1. 简化代码,不必定义函数名,直接创建一个函数对象 >>>sorted([1,2,3],lambda x,y:-cmp(x,y)) [3,2,1] 2. 返回函数 >>> myabs = lambda x: -x if x < 0 else x >>> myabs(-1) 1
    查看全部
  • 想使用循环变量的正确闭包: for i in range(1, 4): def f(j): def g(): return j*j return g r = f(i)
    查看全部
    0 采集 收起 来源:python中闭包

    2018-02-27

  • # 希望一次返回3个函数,分别计算1x1,2x2,3x3: def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 调用f1(),f2()和f3()的结果全部都是 9。 原因:当count()函数返回了3个函数时,这3个函数所引用的变量 i 的值已经变成了3。由于f1、f2、f3并没有被调用,所以,此时他们并未计算 i*i。调用f1时,i已经变为3了。
    查看全部
    0 采集 收起 来源:python中闭包

    2018-02-27

  • 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:
    查看全部
  • 在count 函数的循环内部,引用了循环变量i,此时fq,f2,f3=count的执行过程: 当i=1时,执行for循环,结果返回函数的函数地址,存在列表fs的第一个位置 当i=2时,由于fs列表中第一个元素所指的函数中的i是count函数的局部变量,i也指向2,然后执行for循环,结果返回函数的函数地址,存在列表fs的第二个位置上 当i=3时,同理,在fs列表带一个和第二个元素所指的函数中的i变量指向了3,然后执行for循环,结果返回函数的函数地址,存在列表fs的第三个位置。 所以咋调用f1()时,函数中的i是指向3的,结果为9
    查看全部
    0 采集 收起 来源:python中闭包

    2018-02-27

  • count()函数是返回fs这个list,这个list中的元素是函数而不是数字,就像[f(),f(),f()], f1,f2,f3=count() 就是f1,f2,f3=[f(),f(),f()] 当然这个f()是count里面的, 第一个f()赋给了f1,第二个f()赋给了f2,...这样赋值方法 高级序列赋值语句模式 虽然可以在“=”符号两侧混合匹配序列类型,但是右边元素的数目还是要跟左边变量的数目相同,不然会产生错误。 那么我们回到f()  依然是返回的i*i,但是在循环结束之后i的值是3,这是确定的,所以f()的返回值就是3*3.
    查看全部
    0 采集 收起 来源:python中闭包

    2018-02-27

  • http://www.cnblogs.com/cenyu/p/5713686.html Python的hasattr() getattr() setattr() 函数使用方法详解
    查看全部
  • 解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v
    查看全部

举报

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

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