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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 函数式编程
    查看全部
  • 1、函数能接收变量做参数 2、变量能指向函数(在栈中保存指向函数在堆内层中的指针) 故函数可以作为另一函数的参数,这种函数称之为高阶函数
    查看全部
  • 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果
    查看全部
  • f1, f2, f3 = count(),这句话的意思是f1=count()[0],f2=count()[1],f3=count()[2].这种赋值语句只能用于数组,一一对应
    查看全部
    1 采集 收起 来源:python中闭包

    2017-08-12

  • class Fib(object): def __init__(self, num):#有参数num a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b self.numbers = L def __str__(self): return str(self.numbers) __repr__ = __str__ def __len__(self): return len(self.numbers) f = Fib(10)#创建类的实例时要传入对应的参数 print f print len(f)
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-08-12

  • 一个*类实例*也可以变成一个*可调用*对象,只需要实现一个特殊方法__call__()。 class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __call__(self, friend): print 'My name is %s...' % self.name print 'My friend is %s...' % friend 类Person中有__init__方法,创建实例对象时要传入对应的参数给对象的属性赋初始值 p = Person('Bob', 'male') 然后Person类中虽然定义了一个有双下划线的__call__方法,但不同的是__call__方法把Person类的实例对象p变成一个可调用的对象,即p = __call__,而p('Tim') = __call__('Tim'),
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-08-12

  • class Person(object): def __init__(self, name, gender):#一般可以认为__init__方法是给实例对象添加属性并赋值的(有*self.属性 = 参数*语句),但__init__方法下也可为其他代码。创建实例对象是要把对应的属性值传进去,编写方法时设置了几个参数,在调用时就要对应传入几个参数,否则会报错 self.name = name self.gender = gender p = Person('Bob', 'male') print p.name print p.gender
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-08-12

  • __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。 class Person(object): __slots__ = ('name', 'gender') def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): __slots__ = ('score')#Student类继承于父类Person,在Person类中已经限制了name,gender,这里不需要重复限制 def __init__(self,name,gender,score):#这一个方法传入的参数是想要让实例对象拥有的属性,故不能只填score super(Student,self).__init__(name,gender)#super(子类名,self)+点+父类的__init__方法,方法名和参数都要一样,不过这里不用传入self self.score = score#对实例对象的属性进行赋值 s = Student('Bob', 'male', 59) s.name = 'Tim' s.score = 99 print s.score
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-08-12

  • class Student(object): def __init__(self, name, score): self.name = name self.__score = score @property def score(self):#get实例方法(得到私有属性_score),有@property修饰,则把get方法“装饰”成属性调用,即*对象。方法名*,若没有@property修饰,则*对象。方法名()* return self.__score @score.setter def score(self, score):#set方法,为属性赋值,故参数有self和所要赋的值score if score < 0 or score > 100: raise ValueError('invalid score') self.__score = score#把传入的参数赋给私有属性 @property def grade(self): if self.__score>80: return 'A' elif self.__score>60: return 'B' else: return 'C' s = Student('Bob', 59) print s.grade s.score = 60 print s.grade s.score = 99 print s.grade
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • 狗熊猫 @property---这是关键字,固定格式,能让方法当“属性”用。 @score.setter---前面的"score"是@property紧跟的下面定义的那个方法的名字,"setter"是关键字,这种“@+方法名字+点+setter”是个固定格式与@property搭配使用。
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • python3里 / 结果是浮点数 // 结果是整数
    查看全部
  • 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 __str__(self):#创建实例对象就会自动执行,返回格式化后的字符,即p/q return '%s/%s' % (self.p, self.q) __repr__ = __str__ 现在可以试试有理数加法: >>> r1 = Rational(1, 3) >>> r2 = Rational(1, 2) >>> print r1 + r2 5/6
    查看全部
  • 模块管理工具
    查看全部
  • class Fib(object): def __init__(self, num): a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b#a=b,b=a+b self.numbers = L def __str__(self): return str(self.numbers)#将数组转化为字符串返回,则创建实例对象时,该方法自动执行,当有*print f(实例对象)*时,就会输出字符串数组 __repr__ = __str__ def __len__(self): return len(self.numbers) f = Fib(10) print f print len(f) 在数学上,斐波纳契数列以如下被以 递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-03-22

  • 斐波那契数列是由 0, 1, 1, 2, 3, 5, 8...构成。 n=n-1+n-2 self.fibo.append(self.fibo[i-2] + self.fibo[i-1]) i = 2 时,self.fibo[i-2]即self.fibo[0]表示fibo这个list中的第一个数,self.fibo[i-1]表最后 最后三行可以写作print(Fib(10)) print len(Fib(10))
    查看全部
    0 采集 收起 来源:python中 __len__

    2017-08-12

举报

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

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