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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 1.由于Python是动态语言,任何实例在运行期都可以动态地添加属性。 2.如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。 3.顾名思义,__slots__是指一个类允许的属性列表 4._slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。 记住:__solts__()的括号内添加属性名需要加引号。
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-09-14

  • @property---这是关键字,固定格式,能让方法当“属性”用。 @score.setter---前面的"score"是@property紧跟的下面定义的那个方法的名字,"setter"是关键字,这种“@方法.setter”是个固定格式与@property搭配使用。 如果只使用@property而不使用@xx.setter,就不能对“属性”赋值,这时,就可以创建一个只读“属性”。
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • 要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 for k, v in kw.iteritems(): setattr(self, k, v)
    查看全部
  • @property---这是关键字,固定格式,能让方法当“属性”用。 @score.setter---前面的"score"是@property紧跟的下面定义的那个方法的名字,"setter"是关键字,这种“@+方法名字+点+setter”是个固定格式与@property搭配使用。 如果只使用@property而不使用@xx.setter,就不能对“属性”赋值,这时,就可以创建一个只读“属性”。
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • 装饰器就是一套衣服(一个函数),另外一个函数来了后,穿上了衣服一样,
    查看全部
  • 这里的代码加上了公约数: def gcd(a, b): if b == 0: return a return gcd(b, a % b) class Rational(object): def __init__(self, p, q): self.p = p print p self.q = q def __add__(self, r): print self.p,'*',r.q,'+',self.q,'*',r.p,',',self.q,'*',r.q return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __str__(self): g = gcd(self.p, self.q) return '%s/%s' % (self.p/g, self.q/g) __repr__ = __str__ r1 = Rational(1, 2) r2 = Rational(1, 4) print r1 + r2
    查看全部
  • lambda表达式规则:lambda x : x*x and len(s.strip())>0,[list]; x 为函数的参数, x*x 为返回值,len(s.strip())>0为条件, [list]为导入的参数
    查看全部
  • 每次传入的值的函数,应该带有参数,但是fs.append()中应该添加是变量,而不是一个调用函数,如果不加入一层的话,就是调用函数
    查看全部
    0 采集 收起 来源:python中闭包

    2017-09-14

  • __future__ 这里是双下划线
    查看全部
  • 帮大家理解下,下面这段代码我觉得已经能够理解运算意思了。 r1 = Rational(1, 3) r2 = Rational(1, 2);类的实例化,自动执行__init__方法. (p、q)分别为(1、3)和(1、2);(注意:后面的运算中self代表r1,r代表r2) print r1 + r2 (注意:这里的+号表示执行__add__方法!!!内置的!) 讲下print输出顺序: 第一个print:先输出 1 1; 然后第二个print输出:1*2+3*1,3*2(注意:return又继续调用Rational,也就是递归,里面的值变为(5,6)) 然后又是回到第一个print:输出5!(这时注意:__add__方法不会再次执行,这个方法是通过+号才执行的) 然后第三个print输出5/6;(通过__str__方法运算而来,里面return的%s/%s中有'/'符号!) class Rational(object): def __init__(self, p, q): self.p = p print p self.q = q def __add__(self, r): print self.p,'*',r.q,'+',self.q,'*',r.p,',',self.q,'*',r.q return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __str__(self): return '%s/%s' % (self.p, self.q) __repr__ = __str__ r1 = Rational(1, 3) r2 = Rational(1, 2) print r1 + r2 注:还不理解__add__怎么执行的,你先把print r1 + r2里的+号改成-号,执行后报错,然后再把__add__改成__sub__,再次执行,你就懂了(*与/符号同理)
    查看全部
  • 对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__():
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2017-09-14

  • 所谓的延迟计算,就是将变量指向一个函数名,在输出的时候对函数名进行调用;变量指通过一个带参数的函数指向另外一个函数名的方式来进行延迟计算
    查看全部
  • sorted函数为排序函数,内置的函数是按照升序排列,如果需要更改的话,需要更改其排列的判断方式
    查看全部
  • sorted函数(list,变量(函数))
    查看全部
  • filter函数对list中每个元素进行遍历,将ture的结果生产一份新的list,用于判断列表中某些不需要的数据,其次,math.sqrt()开根号出来的都是浮点数
    查看全部

举报

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

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