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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 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 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) for n in range(num): (一下抄袭) ------for循环和 range函数用来控制下方代码块的循环次数,注意这里是0~num-1,共循环num次 L.append(a) ------给list在尾部加上一个新元素a,这个就是上一次循环退出时存在a中的斐波那契数字 a, b = b, a + b ------这已经中a, b = b, a + b其实就是多个变量的赋值运算,先算等号右边,再赋值给左边变量,这是python中一大亮点,a+b中的b不会被a所覆盖,如果是C,就要写成:int a=0,b=1,t ; t=a,a=b,b=b+t; self.numbers = L ------这一句就是把之前产生的list用类变量锁定,以后就可以通过变量名调用这个list
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-03-07

  • class Student(object): def __init__(self, name, score): self.name = name self.score = score def __str__(self): return '(%s: %s)' % (self.name, self.score) __repr__ = __str__ def __cmp__(self, s): if self.score > s.score: return -1 if self.score < s.score: return 1 if self.score == s.score: if self.name < s.name: return -1 if self.name > s.name: return 1 else: return 0 L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 99)] print sorted(L) #__cmp__用实例自身self和传入的实例 s 进行比较,如果 self 应该排在前面,就返回 -1,如果 s 应该排在前面,就返回1,如果两者相当,返回 0。
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-03-22

  • class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score def __str__(self): return '(student: %s, %s, %s)' % (self.name, self.gender, self.score) __repr__ = __str__ s = Student('Bob', 'male', 88) print s #__str__()可以自定义print的内容,显示给用户 #__repr__()用于显示给开发人员
    查看全部
  • class Person(object): def __init__(self, name, gender, **kw): self.name = name self.gender = gender for k, v in kw.iteritems(): setattr(self, k, v) p = Person('Bob', 'Male', age=18, course='Python') print p.age print p.course #for k, v in kw.iteritems(): # setattr(self, k, v) #**kw是关键字参数,用于字典 #iteritems()用于字典kw的遍历 #setattr(self, k, v)就等价于self.k = v #综上就是,遍历dict kw 中的属性,给每个属性设置了属性值
    查看全部
  • import json class Students(object): def read(self): return r'["Tim", "Bob", "Alice"]' s = Students() print json.load(s) #python:任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load() #多态:调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。
    查看全部
    0 采集 收起 来源:python中多态

    2018-03-22

  • class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score class Teacher(Person): def __init__(self, name, gender, course): super(Teacher, self).__init__(name, gender) self.course = course t = Teacher('Alice', 'Female', 'English') print isinstance(t, Person) print isinstance(t, Student) print isinstance(t, Teacher) print isinstance(t, object) #变量类型的判断以及类类型的判断都可以用 isinstance(x, class或int...)
    查看全部
  • map 对每个list元素进行参数函数操作输出 reduce 对参数函数必须包括两个参数,对list每个元素操作得到一个值输出 filter 对符合参数函数的进行输出
    查看全部
  • class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Teacher(Person): def __init__(self, name, gender, course): super(Teacher, self).__init__(name, gender) self.course = course t = Teacher('Alice', 'Female', 'English') print t.name print t.course #注意super(Teacher, self).__init__(name, gender) 相当于self.name = name self.gender = gender
    查看全部
  • 导入模块 定义第一层函数,引入单位 定义第二层函数,引入原始函数 定义第三层函数,实现加功能并抛出原始函数 需重新学习装饰器
    查看全部
  • 2-3python中编写带参数的deractor 一般有两种:前缀:prefix,比如[debug] 后缀:unit,比如:毫秒ms 注意在判断选择中,c语言跟python语法的不同: python: t=(t2-t1)*1000 if(unit=='ms') else t=(t2-t1) c语言: t=(unit=='ms')?(t2-t1)*1000:(t2-t1) 书写格式: def log(prefix): def log_decorator(f): def wapper(*args,**kw): print ' '%( ) return f(*args,**kw) return wapper return log_decorator
    查看全部
  • abs是python的内建函数,而sqrt只是在名为math.py程序里的一个函数,所以abs可以直接使用,而要使用sqrt,必须用math.sqrt
    查看全部
  • try: import json except ImportError: import simplejson as json print json.dumps({'python':2.7}) json.dumps 将 Python 对象编码成 JSON 字符串 json.loads 将已编码的 JSON 字符串解码为 Python 对象
    查看全部
  • class Person(object): __count = 0 @classmethod def how_many(cls): return cls.__count def __init__(self, name): self.name = name Person.__count = Person.__count + 1 print Person.how_many() p1 = Person('Bob') print Person.how_many() #@classmethod定义一个类方法,只能被类调用
    查看全部
  • class Person(object): def __init__(self, name, score): self.name = name self.score = score self.get_grade = lambda: 'A' p1 = Person('Bob', 90) print p1.get_grade print p1.get_grade() #属性可以是普通的值对象,如str,int等,也可以是方法,还可以是函数
    查看全部
  • class Person(object): def __init__(self, name, score): self.__name = name self.__score = score def get_grade(self): if self.__score >= 80: return 'A' if self.__score >= 60: return 'B' return 'C' p1 = Person('Bob', 90) p2 = Person('Alice', 65) p3 = Person('Tim', 48) print p1.get_grade() print p2.get_grade() print p3.get_grade() #在类中定义方法,调用通过实例p1.方法实现
    查看全部

举报

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

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