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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。 因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
    查看全部
  • 由于属性可以是普通的值对象,如 str,int 等,也可以是方法,还可以是函数,大家看看下面代码的运行结果,请想一想 p1.get_grade 为什么是函数而不是方法: 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() ?不会了怎么办 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
    查看全部
  • score后面要逗号,说明__slots__接受的参数是元组格式,而元组,如果是一个元素的话,后面以逗号结尾
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-02-04

  • class Student(object): def __init__(self, name, score): self.name = name self.__score = score @property def score(self): return self.__score @score.setter def score(self, score): if score < 0 or score > 100: raise ValueError('invalid score') self.__score = score @property def grade(self): if self.score < 60: return 'C' if self.score < 80: return 'B' return 'A' 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

  • def gcd(a, b): if b == 0: return a return gcd(b, a % b) gcd函数,求最大公约数
    查看全部
  • a, b = b, a + b 相当于吧b给a 吧b+a给b 相当于一个迭代 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 一个斐波那契数列 注意list转化为字符串再输出 用str转化
    查看全部
    1 采集 收起 来源:python中 __len__

    2017-02-04

  • class Students(object): def __init__(self, *args): self.names = args def __len__(self): return len(self.names) 只要正确实现了__len__()方法,就可以用len()函数返回Students实例的“长度”: >>> ss = Students('Bob', 'Alice', 'Tim') >>> print len(ss) 3 注意其中所用的无线传入参数的方法*args
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-03-22

  • 内部编写了一个贵族cmp使用,只有当都是贵族类型(student)的时候调用sorted函数内部调用的为贵族cmp否则还是原有cmp。
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2017-02-04

  • 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__
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2017-02-04

  • 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)记住这种无线参数的形式
    查看全部
  • >>> getattr(s, 'name') # 获取name属性 'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性 >>> s.name 'Adam' >>> getattr(s, 'age') # 获取age属性,但是属性不存在,报错: Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no attribute 'age' >>> getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20: 20
    查看全部
  • 打印日志:@log 检测性能:@performance 数据库事务:@transaction URL路由:@post('/register')
    查看全部
  • python内置的@语法是为了简化装饰器调用。
    查看全部
  • 内置函数使用的数据只能在内置函数内定义(如图)
    查看全部
  • 卧草,记住这一节,真的是呵呵呵呵呵了
    查看全部

举报

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

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