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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 如果在类上绑定一个属性,则所有实例都可以访问类的属性。实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。 class Person(object): address = 'Earth' def __init__(self, name): self.name = name 由于Python是动态语言,类属性也是可以动态添加和修改的: Person.address = 'China' 创建实例必定会调用__init__()方法,所以在这里修改类属性 count 很合适。
    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__) self.__job = 'Student'
    查看全部
  • 解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v
    查看全部
  • def log(f): #定义装饰器高阶函数,以要装饰的函数f作为参数 def fn(x): #内部相当于重构要装饰的函数f,重命名为fn print 'call ' + f.__name__ + '()...' #加特技print return f(x) #为了不重写原来的函数f的代码,所以用return f(x)代替原来的代码。 return fn 将被装饰过的新的函数fn返回
    查看全部
  • http://www.jb51.net/article/86383.htm
    查看全部
  • super(Teacher,self).__init__(name, gender) Teacher类,继承父类初始化的name,gender
    查看全部
  • 'setattr(对象,属性,值)'设置属性
    查看全部
  • import time, functools def performance(unit): def perf_decorator(f): @functools.wraps(f) def wrapper(*args, **kw): t1 = time.time() r = f(*args, **kw) t2 = time.time() t = (t2 - t1) * 1000 if unit=='ms' else (t2 - t1) print 'call %s() in %f %s' % (f.__name__, t, unit) return r return wrapper return perf_decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial.__name__
    查看全部
  • sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • import math def is_sqr(x): tmp = math.sqrt(x) return tmp - int(tmp) == 0 #print filter(is_sqr, range(1, 100)) print filter(is_sqr, range(1, 101))
    查看全部
  • def format_name(s): #return s.capitalize() return s[0].upper() + s[1:].lower() print map(format_name, ['adam', 'LISA', 'barT'])
    查看全部
  • 该结中编写带参数的decorator装饰器,其实与上结中的装饰器差别在于:带参数的装饰器需要添加一个可变的参数,因此在最外面加了一层嵌套层log(prefix)。
    查看全部
  • 现在可以对 Person 实例直接调用: >>> p = Person('Bob', 'male') >>> p('Tim') My name is Bob... My friend is Tim... 单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。
    查看全部
    0 采集 收起 来源:python中 __call__

    2018-03-22

  • ### 限制向对象添加属性 由于Python是动态语言,任何实例在运行期都可以动态地添加属性。 如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-12-18

  • class Fib(object): def __init__(self, num): self.num = num def __len__(self): return self.num def __str__(self): lst = [0,1] [ lst.append(lst[-1]+lst[-2]) for i in range(2,self.num)] return str(lst[:self.num]) f = Fib(10) print f print len(f) f = Fib(1) print f print len(f) f = Fib(2) print f print len(f) f = Fib(2000) print f print len(f)
    查看全部
    0 采集 收起 来源:python中 __len__

    2017-12-18

举报

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

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