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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 函数式
    查看全部
  • @property 方法变属性
    查看全部
    0 采集 收起 来源:python中 @property

    2016-05-17

  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。
    查看全部
  • http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html
    查看全部
  • import time def performance(f): #定义装饰器函数,功能是传进来的函数进行包装并返回包装后的函数 def fn(*args, **kw): #对传进来的函数进行包装的函数 t_start = time.time() #记录函数开始时间 r = f(*args, **kw) #调用函数 t_end = time.time() #记录函数结束时间 print 'call %s() in %fs' % (f.__name__, (t_end - t_start)) #打印调用函数的属性信息,并打印调用函数所用的时间 return r #返回包装后的函数 return fn #调用包装后的函数 @performance #调用装饰器 def factorial(n): #定义乘数函数 return reduce(lambda x, y: x * y, range(1, n + 1)) print factorial(10)
    查看全部
  • 1,一个函数的结尾一定要有返回值:return(或者其他返回值) 2,装饰器实际上还是闭包的内容,只不过是装饰下面的函数,然后在返回原来的闭包来执行,不调用参数就不执行 3,r = f(*args,**kw),而不是r = fn(*args,**kw),因为r要从参数的外部调用参数,如果从函数fn(内部函数)调用参数,将会返回错误
    查看全部
  • 这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前
    查看全部
  • 通过对比可以看出匿名函数 lambda x: x * x 实际上就是 def f(x): return x * x 关键字lambda 表示匿名函数冒号前面的 x 表示函数参数。 匿名函数有个限制就是只能有一个表达式不写return返回值就是该表达式的结果。 使用匿名函数可以不必定义函数名直接创建一个函数对象很多时候可以简化代码 >>> sorted([1, 3, 9, 5, 0], lambda x,y: -cmp(x,y)) [9, 5, 3, 1, 0]
    查看全部
  • #求最大公约数 def gcs(a,b,c=1): if 0==a%2 and 0==b%2: return gcs(a/2,b/2,c*2); s = abs(a-b) m = min(a,b) if s == m: return m*c return gcs(s,m,c)
    查看全部
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • Student:%s,%s,%s 打印内容均为字符串
    查看全部
  • class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __sub__(self, r): return Rational(self.p*r.q-self.q*r.p,self.q*r.q) def __mul__(self, r): return Rational(self.p*r.p,self.q*r.q) def __div__(self, r): return Rational(self.p*r.q,self.q*r.p) def __str__(self): return('%s/%s'%(self.q,self.q)) __repr__ = __str__ r1 = Rational(1, 2) r2 = Rational(1, 4) print r1 + r2 print r1 - r2 print r1 * r2 print r1 / r2
    查看全部
  • #请给 Person 类添加一个类属性 count,每创建一个实例,count 属性就加 1,这样就可以统计出一共创建了多少个 Person 的实例。 class Person(object): count=0 def __init__(self,name): self.name= name Person.count= Person.count+1 p1 = Person('Bob') print Person.count p2 = Person('Alice') print Person.count p3 = Person('Tim') print Person.count
    查看全部
  • def __str__(self) return str(self.fibo) #返回字符串
    查看全部
    0 采集 收起 来源:python中 __len__

    2016-05-16

  • 这是因为Python是动态语言,解释执行,因此Python代码运行速度慢。 如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写,这样就能大大提高执行速度。
    查看全部

举报

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

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