为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • 当实例属性和类属性重名时,实例属性优先级高

    查看全部
  • 类属性就是所有的实例都有一样基本的属性

    因为类属性是直接绑定在类上的,所以,访问类属性不需要创建实例,就可以直接访问

    查看全部
  • __init__() 方法的第一个参数必须是 self,后面的参数需要在创建实例的时候输入

    查看全部
  • 类用于定义抽象类型

    实例根据类的定义被创建出来

    查看全部
  • 有理数可以用Rational类表示:

    def gcd(a, b):        # 求a和b的最大公约数
        if b == 0:
            return a
        return gcd(b, a % b)
    
    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):
            g = gcd(self.p, self.q)
            return '%s/%s' % (self.p / g, self.q / g)
            
        __repr__ = __str__
        
    r1 = Rational(1, 2)
    r2 = Rational(1, 4)
    print r1 + r2        # 3/4
    print r1 - r2        # 1/4
    print r1 * r2        # 1/8
    print r1 / r2        # 2/1


    查看全部
  • __len__():如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。

    class Students(object):
        def __init__(self, *args):
            self.names = args
        def __len__(self):
            return len(self.names)


    查看全部
    0 采集 收起 来源:python中 __len__

    2019-08-31

  • 判断一个数是整数还是小数的方法:

    1. target % 1 == 0

    2. target - int(target) == 0

    查看全部
  • __cmp__():比较类的实例。

    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.name < s.name:
                return -1
            elif self.name > s.name:
                return 1
            else:
                return 0


    查看全部
    0 采集 收起 来源:python中 __cmp__

    2019-08-30

  • lambds 匿名函数:只能有一个表达式,不需要写return,返回值就是该表达式的效果

    查看全部
  • python 理解不到位,需重新理解

    查看全部
    0 采集 收起 来源:python中闭包

    2019-08-30

  • 打印实例可以用 __str__() 和 __repr__() 方法,其中 __str__() 用于显示给用户, __repr__() 用于显示给开发人员。

    class Person(object):
        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)
        # __repr__ = __str__
        
    p = Person('Bob', 'male')
    print p        # (Person: Bob, male)
    p               # <main.Person object at 0x10c941890>


    查看全部
  • sorted() 高阶函数,可以自定义比较函数来实现自定义排序, 比如倒叙

    def reversed_cmp(x, y):
        if x > y:
            return -1
        if x < y:
            return 1
        return 0


    查看全部
  • 判断返回的浮点数x,是否为正数,可用 x%2==1来判断

    查看全部
  • 特殊方法:

    1)定义在class中。

    2)不需要直接调用。

    3)只需编写用到的特殊方法。

    4)有关联性的特殊方法都必须实现。

         比如:__getattr__、__setattr__、_delattr__

    查看全部
  • reduce()参数:函数f,list。函数f必须为两个参数。reduce对list中每个元素反复调用函数f,返回一个结果值。

    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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